/[schmitzm]/trunk/src/skrueger/swing/DialogManager.java
ViewVC logotype

Diff of /trunk/src/skrueger/swing/DialogManager.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 435 by alfonx, Sun Oct 4 23:33:30 2009 UTC revision 470 by alfonx, Wed Oct 14 16:20:26 2009 UTC
# Line 11  import javax.swing.JDialog; Line 11  import javax.swing.JDialog;
11    
12  import org.apache.log4j.Logger;  import org.apache.log4j.Logger;
13    
14  public abstract class DialogManager<KEY, DIALOG extends JDialog> {  public abstract class DialogManager<KEY, DIALOG extends AtlasDialog> {
15          final static private Logger LOGGER = Logger.getLogger(DialogManager.class);          final static private Logger LOGGER = Logger.getLogger(DialogManager.class);
16    
17          public abstract class FactoryInterface {          public abstract class FactoryInterface {
# Line 19  public abstract class DialogManager<KEY, Line 19  public abstract class DialogManager<KEY,
19                  public abstract DIALOG create();                  public abstract DIALOG create();
20                                    
21                  /** May be overridden to add Listeners **/                  /** May be overridden to add Listeners **/
22                  public void appendListeners(DIALOG newInstance){};                  public void afterCreation(DIALOG newInstance){};
23    
24                  /** May be overridden to remove Listeners added earlier **/                  /** May be overridden to remove Listeners added earlier **/
25                  public void removeListeners(DIALOG newInstance){};                  public void beforeDispose(DIALOG newInstance){};
26    
27          }          }
28    
# Line 78  public abstract class DialogManager<KEY, Line 78  public abstract class DialogManager<KEY,
78                  }                  }
79          }          }
80    
81          public boolean disposeInstanceFor(KEY chartId) {          public boolean disposeInstanceFor(KEY key) {
82                  synchronized (dialogCache) {                  synchronized (dialogCache) {
83    
84                          final DIALOG dialog = dialogCache.get(chartId);                          final DIALOG dialog = dialogCache.get(key);
85                          if (dialog != null) {                          if (dialog != null) {
86                                  dialog.dispose();                                  dialog.dispose();
87                                  dialogCache.remove(chartId);                                  dialogCache.remove(key);
88                                  return true;                                  return true;
89                          }                          }
90                          return false;                          return false;
# Line 109  public abstract class DialogManager<KEY, Line 109  public abstract class DialogManager<KEY,
109                  } else {                  } else {
110    
111                          dialog = factory.create();                          dialog = factory.create();
   
112                          dialogCache.put(key, dialog);                          dialogCache.put(key, dialog);
113                            dialog.setVisible(true);
114                            dialog.toFront();
115    
116                          dialog.addWindowListener(new WindowAdapter() {                          dialog.addWindowListener(new WindowAdapter() {
117                                  @Override                                  @Override
118                                  public void windowClosed(final WindowEvent e) {                                  public void windowClosed(final WindowEvent e) {
119                                          factory.removeListeners(dialog);                                          dialog.setVisible(false);
120                                            factory.beforeDispose(dialog);
121                                          disposeInstanceFor(key);                                          disposeInstanceFor(key);
122                                  }                                  }
123                          });                          });
124                                                    
125                          factory.appendListeners(dialog);                          factory.afterCreation(dialog);
126                  }                  }
127                                    
128                  dialog.setVisible(true);  
                 dialog.toFront();  
                   
129                  return dialog;                  return dialog;
130          }          }
131    

Legend:
Removed from v.435  
changed lines
  Added in v.470

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26