View Javadoc

1   package org.opensync.engine.admin.gui;
2   
3   import java.awt.CardLayout;
4   import java.util.Enumeration;
5   import java.util.Hashtable;
6   import java.util.Iterator;
7   
8   import javax.swing.JDesktopPane;
9   import javax.swing.JInternalFrame;
10  import javax.swing.JPanel;
11  import javax.swing.JScrollPane;
12  import javax.swing.JSplitPane;
13  
14  import org.opensync.engine.server.Agenda;
15  import org.opensync.engine.server.Agendas;
16  import org.opensync.engine.server.OpenSync;
17  import org.opensync.engine.server.Task;
18  import org.opensync.engine.server.TaskEvent;
19  import org.opensync.engine.server.TaskListener;
20  import org.opensync.engine.server.config.ConfigDoc;
21  
22  
23  /***
24   *
25   * @version	1.0
26   * @author	SOFTMED
27   *
28   */
29  
30  public class AppPnl extends JPanel implements TaskListener {
31    JDesktopPane desktop = new JDesktopPane();
32    JSplitPane splitPane = new JSplitPane();
33    CardLayout cardLayout = new CardLayout();
34    JScrollPane scrollPane = new JScrollPane();
35    OpenSyncTree tree;
36    LogIFrm logIFrm;
37    Hashtable frames = new Hashtable();
38    private OpenSync openSync;
39  
40    /****/
41    protected static AppPnl appPnl;
42    /***
43     * @param	openSync
44     */
45    public AppPnl(OpenSync openSync) {
46      appPnl = this;
47      tree = new OpenSyncTree(this);
48      this.openSync = openSync;
49      logIFrm = new LogIFrm(openSync.getLog(),
50        openSync.getProperties().getGuiLogRollWindow()
51      );
52      jbInit();
53      splitPane.setDividerLocation(150);
54    }
55    /****/
56    static public AppPnl getInstance() {
57      return appPnl;
58    }
59  
60    private void jbInit(){
61      setLayout(cardLayout);
62      add(splitPane, "splitPane");
63      splitPane.add(scrollPane, JSplitPane.LEFT);
64      scrollPane.getViewport().add(tree, null);
65      splitPane.add(desktop, JSplitPane.RIGHT);
66  
67      showLogFrame();
68    }
69    /****/
70    public void showLogFrame(){
71      if(!logIFrm.isVisible()){
72        synchronized(desktop){
73          desktop.add(logIFrm);
74          logIFrm.setVisible(true);
75          try {
76           logIFrm.setSelected(true);
77          }
78          catch (Exception ex) {
79            ex.printStackTrace();
80          }
81        }
82      }
83    }
84    /****/
85    public LogIFrm getLogIfrm(){
86      return logIFrm;
87    }
88    /***
89     * @param	frm
90     */
91    public void addIFrame(JInternalFrame frm){
92      synchronized(desktop){
93        desktop.add(frm);
94        try {
95         frm.setVisible(true);
96         frm.setSelected(true);
97        }
98        catch (Exception ex) {
99          ex.printStackTrace();
100       }
101     }
102   }
103   /***
104    * @param	doc
105    */
106   public void process(ConfigDoc doc){
107     process(doc.getAgendas());
108     tree.createNode(doc.getSynchronizations());
109     tree.createNode(doc.getSources());
110     tree.createNode(doc.getAgendas());
111   }
112   /***
113    * @param	agendas
114    */
115   public void process(Agendas agendas) {
116     Enumeration enumeration = agendas.elements();
117     while(enumeration.hasMoreElements()){
118       Agenda agenda = (Agenda)enumeration.nextElement();
119       process(agenda);
120     }
121   }
122   /***
123    * @param	agenda
124    */
125   protected void process(Agenda agenda){
126     Iterator iterator = agenda.getTasks().iterator();
127     while(iterator.hasNext()){
128       process((Task)iterator.next());
129     }
130   }
131   /***
132    * @param	task ?agenda?
133    */
134   protected void process(Task task){
135     task.addTaskListener(this);
136     Iterator iterator = task.getSubTasks().iterator();
137     while(iterator.hasNext()){
138       process((Task)iterator.next());
139     }
140   }
141   /***
142    * @param	event
143    */
144   public void taskStart(TaskEvent event) {
145     try {
146       Task task = event.getTask();
147       TaskIFrm frm = new TaskIFrm(task,openSync.getLog());
148       synchronized(frames){
149         frames.put(task.getName(),frm);
150       }
151       addIFrame(frm);
152     }
153     catch (Exception ex) {
154       ex.printStackTrace();
155       //even if there is an exception here don't throw it
156     }
157   }
158   /***
159    * @param	event
160    */
161   public void taskStop(TaskEvent event) {
162     try {
163       if(openSync.getProperties().isGuiTaskCloseWhenFinished()){
164         Task task = event.getTask();
165         JInternalFrame frm = (JInternalFrame)frames.remove(task.getName());
166         if(frm != null){
167           frm.dispose();
168           desktop.remove(frm);
169         }
170       }
171     }
172     catch (Exception ex) {
173       ex.printStackTrace();
174       //even if there is an exception here don't throw it
175     }
176   }
177   /***
178    * @param	event
179    */
180   public void taskFail(TaskEvent event) {
181   }
182 }
183 
184 
185