Update of /cvsroot/squirrel-sql/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/objecttree/tabs/table
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8840
Modified Files:
ContentsTab.java
Log Message:
provide a menu to let user insert a row when there is nothing in the table
Index: ContentsTab.java
===================================================================
RCS file: /cvsroot/squirrel-sql/sql12/app/src/net/sourceforge/squirrel_sql/client/session/mainpanel/objecttree/tabs/table/ContentsTab.java,v
retrieving revision 1.25
retrieving revision 1.26
diff -C2 -d -r1.25 -r1.26
*** ContentsTab.java 23 Apr 2004 18:31:00 -0000 1.25
--- ContentsTab.java 26 Apr 2004 15:45:38 -0000 1.26
***************
*** 25,28 ****
--- 25,32 ----
import javax.swing.JOptionPane;
import java.util.HashMap;
+ import java.awt.event.MouseAdapter;
+ import java.awt.event.MouseListener;
+ import java.awt.event.MouseEvent;
+ import java.awt.Component;
import net.sourceforge.squirrel_sql.fw.datasetviewer.DataSetException;
***************
*** 36,39 ****
--- 40,47 ----
import net.sourceforge.squirrel_sql.fw.util.log.ILogger;
import net.sourceforge.squirrel_sql.fw.util.log.LoggerController;
+ import net.sourceforge.squirrel_sql.fw.gui.TablePopupMenu;
+ import net.sourceforge.squirrel_sql.fw.datasetviewer.DataSetScrollingPanel;
+ import net.sourceforge.squirrel_sql.fw.datasetviewer.DataSetViewerTablePanel;
+
import net.sourceforge.squirrel_sql.client.session.ISession;
***************
*** 102,105 ****
--- 110,114 ----
private static final ILogger s_log =
LoggerController.createLogger(ContentsTab.class);
+
/**
***************
*** 124,127 ****
--- 133,182 ----
/**
+ * This inner class defines a pop-up menu with only one item, "insert", which
+ * allows the user to add a new row to an empty table.
+ */
+ class ContentsTabPopupMenu extends TablePopupMenu
+ {
+ public ContentsTabPopupMenu(DataSetViewerTablePanel viewer) {
+ super(viewer.isTableEditable(), ContentsTab.this, viewer);
+ removeAll(); // the normal constructor creates a bunch of entries we do not want
+ add(_insertRow);
+ }
+ }
+
+ /**
+ * Override the parent's getComponent method so that we can
+ * attach a menu to the ContentsTab pane that allows the user
+ * to insert a new row when the table is empty.
+ */
+ public Component getComponent(){
+ final Component c = super.getComponent();
+
+ if (c != null) {
+ // remove any previously set listeners
+ MouseListener[] oldListeners = c.getMouseListeners();
+ for (int i=0; i< oldListeners.length; i++)
+ c.removeMouseListener(oldListeners[i]);
+ // If the viewer is a table AND table iseditable, add a listener using the current viewer
+ if (((DataSetScrollingPanel)c).getViewer() instanceof DataSetViewerTablePanel) {
+ final DataSetViewerTablePanel viewer =
+ (DataSetViewerTablePanel)((DataSetScrollingPanel)c).getViewer();
+ if (viewer.isTableEditable()) {
+ c.addMouseListener(new MouseAdapter()
+ {
+ public void mousePressed(MouseEvent evt)
+ {
+ if (evt.isPopupTrigger())
+ new ContentsTabPopupMenu(viewer).show(evt);
+ }
+ });
+ }
+ }
+ }
+ return c;
+ }
+
+
+ /**
* return the name of the table that is unambiguous across DB accesses,
* including the same DB on different machines.
***************
*** 144,155 ****
final String name = getTableInfo().getQualifiedName();
fullTableName = getUnambiguousTableName(session, name);
- /***
- final ISession session = getSession();
- final ITableInfo ti = getTableInfo();
-
- fullTableName = session.getAlias().getUrl()+":"+
- ti.getCatalogName()+":"+ti.getSchemaName()+
- ":"+ti.getSimpleName();
- ****/
}
catch (Exception e) {
--- 199,202 ----
|