/[xulu]/trunk/src/appl/parallel/gui/ModelControlFrame_parallel.java
ViewVC logotype

Contents of /trunk/src/appl/parallel/gui/ModelControlFrame_parallel.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 78 - (show annotations)
Wed Feb 10 16:43:46 2010 UTC (14 years, 10 months ago) by alfonx
File size: 3712 byte(s)
Merged branch 1.8-gt2-2.6 to trunk. Now the trunk is based on GeoTools 2.6.1 and schmitzm-2.0.x
1 package appl.parallel.gui;
2
3 import java.awt.GridBagConstraints;
4 import java.awt.Insets;
5 import java.awt.event.ActionEvent;
6 import java.awt.event.ActionListener;
7
8 import schmitzm.lang.WorkingThread;
9 import schmitzm.lang.WorkingThreadAdapter;
10 import appl.parallel.model.AbstractParallelStepModel;
11 import edu.bonn.xulu.XuluModellingPlatform;
12 import edu.bonn.xulu.model.XuluModel;
13 import edu.bonn.xulu.plugin.gui.ModelControlContainer;
14 import edu.bonn.xulu.plugin.gui.ModelControlFrame_Basic;
15
16 /**
17 * Introduces a new TAB into the {@link ModelControlFrame_Basic}
18 * for controlling the parallel execution
19 *
20 * @author Dominik Appl
21 */
22 public class ModelControlFrame_parallel extends ModelControlFrame_Tabbed {
23
24 protected ParallelControlPanelEngine spcEngine;
25
26 private boolean parallelPaneInitalized;
27
28 /**
29 * @param appl
30 * @param model
31 */
32 public ModelControlFrame_parallel(XuluModellingPlatform appl,
33 XuluModel model) {
34 super(appl, model);
35 this.pack();
36 }
37
38 /**
39 * does basically the same as
40 * {@link ModelControlFrame_Basic#initControlContainer()}
41 */
42 protected void initControlContainer() {
43 spcEngine = new ParallelControlPanelEngine(appl);
44 // ####### Initialize controlcomponent #######
45 controlContainer = new ModelControlContainer_parallel(model, spcEngine,
46 appl);
47
48 // ******************** COPIED FROM SUPERCLASS
49 // **************************
50
51 // Bei Init-Aktion muessen zunaechst die Modell-Ressourcen mit den
52 // ausgewaehlten
53 // Datenpool-Objekten verknuepft werden; bevor das Modell initialisiert
54 // wird
55 controlContainer.addButtonActionListener(
56 ModelControlContainer.BUTTON_INIT, new ActionListener() {
57 public void actionPerformed(ActionEvent e) {
58 setModelResources();
59 }
60 });
61 // Waehrend das Modell laeuft, soll nichts an den Ressourcen veraendet
62 // werden
63 controlContainer.addThreadListener(new WorkingThreadAdapter() {
64 public void threadStarted(WorkingThread thread) {
65 contentContainer.setEnabled(false);
66 reloadButton.setEnabled(false);
67 }
68
69 public void threadStopped(WorkingThread thread) {
70 contentContainer.setEnabled(true);
71 reloadButton.setEnabled(true);
72 }
73 });
74 contentPane.add(controlContainer, new GridBagConstraints(0, 0, 1, 1,
75 1.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH,
76 new Insets(5, 5, 5, 5), 0, 0));
77 }
78
79 @Override
80 protected void initContentPane() {
81 super.initContentPane();
82 // System.out.println(model.getClass().getName());
83 if (model instanceof AbstractParallelStepModel) {
84 initializeParallelPane();
85 } else
86 parallelPaneInitalized = false;
87 }
88
89 private boolean isParallelPaneInitalized() {
90 return parallelPaneInitalized;
91 }
92
93 @Override
94 protected ModelControlFrame_parallel newInstance(XuluModel newModel) {
95 ModelControlFrame_parallel frame_parallel = new ModelControlFrame_parallel(
96 appl, newModel);
97 // initialize the parallel pane if it was initialized before
98 if (this.isParallelPaneInitalized()
99 && !frame_parallel.isParallelPaneInitalized()) {
100 if (newModel.getClass().getName()
101 .equals(model.getClass().getName())) {
102 frame_parallel.initializeParallelPane();
103 }
104 }
105 return frame_parallel;
106 }
107
108 private void initializeParallelPane() {
109 super.tabbedPane.addTab("Parallel Control", spcEngine.getPanel());
110 // The boolean parallelPaneInitalized is required because after
111 // reloading
112 // with a custom classloader, like the preferred classloader, the
113 // 'instanceof' will no longer work properly with the reloaded class.
114 // (instanceof will return false)
115 parallelPaneInitalized = true;
116 }
117
118 }

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26