Update of /cvsroot/squirrel-sql/sql12/app/src/net/sourceforge/squirrel_sql/client/session
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8475
Modified Files:
SessionWindowManager.java
Log Message:
hooks for EditWhereCols function
Index: SessionWindowManager.java
===================================================================
RCS file: /cvsroot/squirrel-sql/sql12/app/src/net/sourceforge/squirrel_sql/client/session/SessionWindowManager.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** SessionWindowManager.java 18 Sep 2003 11:38:14 -0000 1.3
--- SessionWindowManager.java 20 Apr 2004 19:51:14 -0000 1.4
***************
*** 30,33 ****
--- 30,34 ----
import net.sourceforge.squirrel_sql.client.session.properties.SessionPropertiesSheet;
import net.sourceforge.squirrel_sql.client.session.sqlfilter.SQLFilterSheet;
+ import net.sourceforge.squirrel_sql.client.session.properties.EditWhereColsSheet;
import net.sourceforge.squirrel_sql.fw.gui.GUIUtils;
import net.sourceforge.squirrel_sql.fw.id.IIdentifier;
***************
*** 59,62 ****
--- 60,64 ----
private final Map _sqlFilterSheets = new HashMap();
+ private final Map _editWhereColsSheets = new HashMap();
/** Listens to session properties dialogs waiting for them to close. */
***************
*** 66,69 ****
--- 68,74 ----
private final SQLFilterDialogListener _sqlFilterDialogListener = new SQLFilterDialogListener();
+ /** Listens to SQL filter dialogs waiting for them to close. */
+ private final EditWhereColsDialogListener _editWhereColsDialogListener = new EditWhereColsDialogListener();
+
/** Listenys to Session internal frames waiting for them to close. */
private final SessionInternalFrameListener _sessionInternalFrameListener = new SessionInternalFrameListener();
***************
*** 225,228 ****
--- 230,272 ----
/**
+ * Get a EditWhereCols sheet for the passed session. If one already exists it
+ * will be brought to the front. If one doesn't exist it will be created.
+ *
+ * @param session The session for which the user has requested the sheet.
+ * @param objectInfo An instance of a class containing information about
+ * the database metadata.
+ *
+ * @return The maintenance sheet for the passed session.
+ */
+ public synchronized EditWhereColsSheet showEditWhereColsDialog(ISession session,
+ IDatabaseObjectInfo objectInfo)
+ {
+ if (session == null)
+ {
+ throw new IllegalArgumentException("ISession == null");
+ }
+ if (objectInfo == null)
+ {
+ throw new IllegalArgumentException("IDatabaseObjectInfo == null");
+ }
+
+ EditWhereColsSheet editWhereColsSheet = getEditWhereColsSheet(session, objectInfo);
+ if (editWhereColsSheet == null)
+ {
+ editWhereColsSheet = new EditWhereColsSheet(session, objectInfo);
+ Map map = getAllEditWhereColsSheets(session);
+ map.put(objectInfo.getQualifiedName(), editWhereColsSheet);
+ _app.getMainFrame().addInternalFrame(editWhereColsSheet, true, null);
+ editWhereColsSheet.addInternalFrameListener(_editWhereColsDialogListener);
+ positionSheet(editWhereColsSheet);
+ }
+
+ editWhereColsSheet.moveToFront();
+ editWhereColsSheet.setVisible(true);
+ return editWhereColsSheet;
+ }
+
+
+ /**
* Close all sessions.
*/
***************
*** 280,283 ****
--- 324,344 ----
return map;
}
+
+ private EditWhereColsSheet getEditWhereColsSheet(ISession session, IDatabaseObjectInfo objectInfo)
+ {
+ Map map = getAllEditWhereColsSheets(session);
+ return (EditWhereColsSheet)map.get(objectInfo.getQualifiedName());
+ }
+
+ private Map getAllEditWhereColsSheets(ISession session)
+ {
+ Map map = (Map)_editWhereColsSheets.get(session.getIdentifier());
+ if (map == null)
+ {
+ map = new HashMap();
+ _editWhereColsSheets.put(session.getIdentifier(), map);
+ }
+ return map;
+ }
private void positionSheet(JInternalFrame jif)
***************
*** 321,324 ****
--- 382,399 ----
}
}
+
+ private synchronized void editWhereColsDialogClosed(EditWhereColsSheet sfs)
+ {
+ if (sfs != null)
+ {
+ sfs.removeInternalFrameListener(_editWhereColsDialogListener);
+ Map map = getAllEditWhereColsSheets(sfs.getSession());
+ String key = sfs.getDatabaseObjectInfo().getQualifiedName();
+ if (map.remove(key) == null)
+ {
+ s_log.error("Unable to find EditWhereColsSheet for " + key);
+ }
+ }
+ }
private synchronized void sessionInternalFrameClosed(SessionInternalFrame sif)
***************
*** 356,359 ****
--- 431,443 ----
}
}
+
+ private final class EditWhereColsDialogListener extends InternalFrameAdapter
+ {
+ public void internalFrameClosed(InternalFrameEvent evt)
+ {
+ EditWhereColsSheet sfs = (EditWhereColsSheet)evt.getInternalFrame();
+ SessionWindowManager.this.editWhereColsDialogClosed(sfs);
+ }
+ }
private final class SessionInternalFrameListener extends InternalFrameAdapter
|