package com.quantum.actions; import java.sql.Connection; import java.util.List; import com.quantum.ImageStore; import com.quantum.Messages; import com.quantum.model.Bookmark; import com.quantum.model.Entity; import com.quantum.sql.SQLResults; import com.quantum.util.connection.ConnectionUtil; import com.quantum.view.ViewHelper; import com.quantum.view.bookmark.EntityNode; import com.quantum.view.tableview.TableView; import org.eclipse.jface.action.IAction; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.IViewPart; import org.eclipse.ui.actions.SelectionListenerAction; public class ViewTableDetailsAction extends SelectionListenerAction { private IViewPart view; private ConnectionUtil connectionUtil = new ConnectionUtil(); public ViewTableDetailsAction(IViewPart view) { super(Messages.getString(ViewTableDetailsAction.class, "text")); setImageDescriptor(ImageStore.getImageDescriptor(ImageStore.OPEN_TABLE)); this.view = view; } public void run() { Entity entity = getEntity(); StringBuffer query = new StringBuffer(); query.append(Messages.getString("MetaDataKey")+Messages.getString("MetaDataKeySeparator")); //$NON-NLS-1$ //$NON-NLS-2$ query.append(entity.getQuotedTableName()); Connection connection = connectionUtil.getConnection(getBookmark(), getShell()); if (connection != null) { SQLResults results = ViewHelper.tryGetResults(view, connection, query.toString()); if (results != null && ! results.isError()) TableView.getInstance().loadQuery(entity.getBookmark(), results); } } public void selectionChanged(IAction action, ISelection selection) { } protected Bookmark getBookmark() { return getEntity().getBookmark(); } protected Shell getShell() { return this.view.getViewSite().getShell(); } protected Entity getEntity() { List list = getSelectedNonResources(); return ((EntityNode) list.get(0)).getEntity(); } /** * @see org.eclipse.ui.actions.SelectionListenerAction#updateSelection(org.eclipse.jface.viewers.IStructuredSelection) */ protected boolean updateSelection(IStructuredSelection selection) { boolean enabled = super.updateSelection(selection); return enabled && selection.size() == 1; } }