X-Git-Url: http://secure.phpeclipse.com diff --git a/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/actions/ViewTableDetailsAction.java b/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/actions/ViewTableDetailsAction.java new file mode 100644 index 0000000..5215912 --- /dev/null +++ b/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/actions/ViewTableDetailsAction.java @@ -0,0 +1,66 @@ +package com.quantum.actions; + +import java.sql.Connection; +import java.util.List; + +import com.quantum.Messages; +import com.quantum.QuantumPlugin; +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(QuantumPlugin.getImageDescriptor("table.gif")); //$NON-NLS-1$ + 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; + } + +}