Revision: 3467
Author: ferguson.sebastian
Date: Wed Apr 21 09:00:48 2010
Log: Added a session life cycle listener method 'sessionOpening' so that special enterprise features can be added through an alternate main()
http://code.google.com/p/power-architect/source/detail?r=3467

Modified:
/trunk/src/main/java/ca/sqlpower/architect/enterprise/ArchitectClientSideSession.java
 /trunk/src/main/java/ca/sqlpower/architect/swingui/ArchitectFrame.java
/trunk/src/main/java/ca/sqlpower/architect/swingui/ArchitectSwingSessionContextImpl.java /trunk/src/main/java/ca/sqlpower/architect/swingui/action/PasteSelectedAction.java /trunk/src/main/java/ca/sqlpower/architect/swingui/olap/OLAPEditSession.java

=======================================
--- /trunk/src/main/java/ca/sqlpower/architect/enterprise/ArchitectClientSideSession.java Tue Apr 20 15:12:12 2010 +++ /trunk/src/main/java/ca/sqlpower/architect/enterprise/ArchitectClientSideSession.java Wed Apr 21 09:00:48 2010
@@ -279,6 +279,9 @@
                        public void 
sessionClosing(SessionLifecycleEvent<ArchitectSession> e) {
                                
SQLPowerUtils.unlistenToHierarchy(getWorkspace(), listener);
                        }
+
+ public void sessionOpening(SessionLifecycleEvent<ArchitectSession> e) {
+            }
                });
        }

=======================================
--- /trunk/src/main/java/ca/sqlpower/architect/swingui/ArchitectFrame.java Wed Apr 7 14:53:55 2010 +++ /trunk/src/main/java/ca/sqlpower/architect/swingui/ArchitectFrame.java Wed Apr 21 09:00:48 2010
@@ -818,7 +818,7 @@
         menuBar.add(olapMenu);

         // Enterprise stuff ...
-        JMenu enterpriseMenu = new JMenu("Enterprise");
+        enterpriseMenu = new JMenu("Enterprise");
         enterpriseMenu.add(openServerManagerAction);
         enterpriseMenu.add(openProjectManagerAction);
         openRevisionListAction.setEnabled(session.isEnterpriseSession());
@@ -900,6 +900,12 @@
         return menuBar;
     }

+    private JMenu enterpriseMenu;
+
+    public JMenu getEnterpriseMenu() {
+        return enterpriseMenu;
+    }
+
     private JMenu buildOLAPEditMenu() {
JMenu menu = new JMenu(Messages.getString("ArchitectFrame.editSchemaMenu")); //$NON-NLS-1$
         menu.add(new JMenuItem(new OLAPEditAction(session, null)));
=======================================
--- /trunk/src/main/java/ca/sqlpower/architect/swingui/ArchitectSwingSessionContextImpl.java Tue Apr 6 11:05:39 2010 +++ /trunk/src/main/java/ca/sqlpower/architect/swingui/ArchitectSwingSessionContextImpl.java Wed Apr 21 09:00:48 2010
@@ -172,6 +172,10 @@

             if (showGUI) {
                 session.initGUI();
+                if (externalLifecycleListener != null) {
+                    externalLifecycleListener.sessionOpening(
+ new SessionLifecycleEvent<ArchitectSwingSession>(session));
+                }
             }

             return session;
@@ -253,6 +257,11 @@

         if (initGUI) {
             swingSession.initGUI();
+
+            if (externalLifecycleListener != null) {
+                externalLifecycleListener.sessionOpening(
+ new SessionLifecycleEvent<ArchitectSwingSession>(swingSession));
+            }
         }

         return swingSession;
@@ -329,7 +338,12 @@
         if (showGUI) {
             logger.debug("Creating the Architect frame..."); //$NON-NLS-1$
             session.initGUI(openingSession);
-
+
+            if (externalLifecycleListener != null) {
+                externalLifecycleListener.sessionOpening(
+ new SessionLifecycleEvent<ArchitectSwingSession>(session));
+            }
+
             if (openingSession == null && getSessions().size() == 1) {
                 showWelcomeScreen(session.getArchitectFrame());
             }
@@ -365,8 +379,21 @@
                 System.exit(0);
             }
         }
+
+ public void sessionOpening(SessionLifecycleEvent<ArchitectSession> e) {
+        }
     };

+    /**
+ * Provides a way for architect enterprise to have at the sessions as they are
+     * created and distroyed.
+     */
+ private SessionLifecycleListener<ArchitectSwingSession> externalLifecycleListener = null;
+
+ public void setExternalLifecycleListener(SessionLifecycleListener<ArchitectSwingSession> externalLifecycleListener) {
+        this.externalLifecycleListener = externalLifecycleListener;
+    }
+
     /**
      * Defaults to false, which is required by the interface spec.
      */
=======================================
--- /trunk/src/main/java/ca/sqlpower/architect/swingui/action/PasteSelectedAction.java Thu Mar 4 08:08:10 2010 +++ /trunk/src/main/java/ca/sqlpower/architect/swingui/action/PasteSelectedAction.java Wed Apr 21 09:00:48 2010
@@ -63,6 +63,9 @@
public void sessionClosing(SessionLifecycleEvent<ArchitectSession> e) {
                 session.getPlayPen().removeFocusListener(focusListener);
             }
+
+ public void sessionOpening(SessionLifecycleEvent<ArchitectSession> e) {
+            }
         };
         session.addSessionLifecycleListener(lifecycleListener);
     }
=======================================
--- /trunk/src/main/java/ca/sqlpower/architect/swingui/olap/OLAPEditSession.java Fri Mar 12 08:02:18 2010 +++ /trunk/src/main/java/ca/sqlpower/architect/swingui/olap/OLAPEditSession.java Wed Apr 21 09:00:48 2010
@@ -168,6 +168,9 @@
public void sessionClosing(SessionLifecycleEvent<ArchitectSession> e) {
                 close();
             }
+
+ public void sessionOpening(SessionLifecycleEvent<ArchitectSession> e) {
+            }
         });
//Don't initialize GUI here for cases where the Architect's frame has not been created (like loading).
     }


--
Subscription settings: 
http://groups.google.com/group/architect-commits/subscribe?hl=en

Reply via email to