Revision 739

View differences:

org.gvsig.scripting/trunk/org.gvsig.scripting/org.gvsig.scripting.swing/org.gvsig.scripting.swing.impl/src/main/java/org/gvsig/scripting/swing/impl/DefaultScriptingUIManager.java
75 75
    private final Map<String,MenuEntry> composerMenus = new HashMap<>();
76 76
    private JScriptingComposer activeComposer;
77 77
    private Set<CreateComponentListener> createComponentListeners;    
78
    private final List<EditorFactory> editorFactories = new ArrayList<>();
78
    private final Map<String,EditorFactory> editorFactories = new HashMap<>();
79
    private List<EditorFactory> editorFactoriesOrderer = null;
79 80
    
80 81
    private static class DefaultMenuEntry implements MenuEntry {
81 82
        private final Action action;
......
399 400
    @Override
400 401
    public JEditor createEditor(ScriptingUnit unit) {
401 402
        JEditor editor = null;
402
        for (EditorFactory factory : this.editorFactories ) {
403
        for (EditorFactory factory : this.getEditorFactories() ) {
403 404
            if( factory.canCreate(unit) ) {
404 405
                editor = factory.create(unit);
405 406
                fireCreateComponent(editor);
......
409 410
        return editor;
410 411
    }
411 412

  
413
    @Override
412 414
    public boolean hasEditor(ScriptingUnit unit) {
413
        for (EditorFactory factory : this.editorFactories ) {
415
        for (EditorFactory factory : this.getEditorFactories() ) {
414 416
            if( factory.canCreate(unit) ) {
415 417
                return true;
416 418
            }
......
427 429
        return this.activeComposer;
428 430
    }
429 431

  
432
    @Override
430 433
    public void registerEditor(EditorFactory factory) {
431
        if( this.editorFactories.contains(factory) ) {
432
            return;
434
        this.editorFactories.put(factory.getName(), factory);
435
        this.editorFactoriesOrderer = null;
436
    }
437
    
438
    @Override
439
    public List<EditorFactory> getEditorFactories() {
440
        if( this.editorFactoriesOrderer == null ) {
441
            this.editorFactoriesOrderer = new ArrayList<>(this.editorFactories.values());
442
            Collections.sort(editorFactoriesOrderer, new Comparator<EditorFactory>() {
443

  
444
                @Override
445
                public int compare(EditorFactory o1, EditorFactory o2) {
446
                    return o2.getPriority() - o1.getPriority();
447
                }
448
            });
433 449
        }
434
        this.editorFactories.add(factory);
435
        Collections.sort(editorFactories, new Comparator<EditorFactory>() {
436

  
437
            @Override
438
            public int compare(EditorFactory o1, EditorFactory o2) {
439
                return o2.getPriority() - o1.getPriority();
440
            }
441
        });
450
        return editorFactoriesOrderer;
442 451
    }
443 452
}
org.gvsig.scripting/trunk/org.gvsig.scripting/org.gvsig.scripting.swing/org.gvsig.scripting.swing.impl/src/main/java/org/gvsig/scripting/swing/impl/composer/editors/ExternalFileEditorView.xml
25 25
    <at name="componentclass">com.jeta.forms.gui.form.FormComponent</at>
26 26
   </super>
27 27
   <at name="id">/home/jjdelcerro/datos/devel/org.gvsig.scripting/org.gvsig.scripting.swing/org.gvsig.scripting.swing.impl/src/main/java/org/gvsig/scripting/swing/impl/composer/editors/ExternalFileEditorView.xml</at>
28
   <at name="path">datos/devel/org.gvsig.scripting/org.gvsig.scripting.swing/org.gvsig.scripting.swing.impl/src/main/java/org/gvsig/scripting/swing/impl/composer/editors/ExternalFileEditorView.xml</at>
29
   <at name="rowspecs">CENTER:4DLU:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:4DLU:NONE</at>
28
   <at name="rowspecs">CENTER:4DLU:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,FILL:DEFAULT:GROW(1.0),CENTER:4DLU:NONE</at>
30 29
   <at name="colspecs">FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE,FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE</at>
31 30
   <at name="components">
32 31
    <object classname="java.util.LinkedList">
......
54 53
          <at name="classname">com.jeta.forms.components.label.JETALabel</at>
55 54
          <at name="properties">
56 55
           <object classname="com.jeta.forms.store.support.PropertyMap">
57
            <at name="text">Name</at>
58
            <at name="height">14</at>
59
            <at name="width">58</at>
60
            <at name="name">lblName</at>
61
            <at name="fill">
62
             <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
63
              <at name="name">fill</at>
64
             </object>
65
            </at>
66 56
            <at name="border">
67 57
             <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
68 58
              <super classname="com.jeta.forms.store.properties.BorderProperty">
......
83 73
              </at>
84 74
             </object>
85 75
            </at>
76
            <at name="name">lblName</at>
77
            <at name="width">58</at>
78
            <at name="text">Name</at>
79
            <at name="fill">
80
             <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
81
              <at name="name">fill</at>
82
             </object>
83
            </at>
84
            <at name="height">14</at>
86 85
           </object>
87 86
          </at>
88 87
         </object>
......
114 113
          <at name="classname">javax.swing.JTextField</at>
115 114
          <at name="properties">
116 115
           <object classname="com.jeta.forms.store.support.PropertyMap">
117
            <at name="height">20</at>
118
            <at name="width">388</at>
119
            <at name="name">txtName</at>
120
            <at name="background" object="color">236,233,216</at>
121 116
            <at name="border">
122 117
             <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
123 118
              <super classname="com.jeta.forms.store.properties.BorderProperty">
......
138 133
              </at>
139 134
             </object>
140 135
            </at>
136
            <at name="background" object="color">236,233,216</at>
141 137
            <at name="editable">false</at>
138
            <at name="name">txtName</at>
139
            <at name="width">463</at>
140
            <at name="height">20</at>
142 141
           </object>
143 142
          </at>
144 143
         </object>
......
170 169
          <at name="classname">com.jeta.forms.components.label.JETALabel</at>
171 170
          <at name="properties">
172 171
           <object classname="com.jeta.forms.store.support.PropertyMap">
173
            <at name="text">Mime type</at>
174
            <at name="height">14</at>
175
            <at name="width">58</at>
176
            <at name="name">lblMimeType</at>
177
            <at name="fill">
178
             <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
179
              <at name="name">fill</at>
180
             </object>
181
            </at>
182 172
            <at name="border">
183 173
             <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
184 174
              <super classname="com.jeta.forms.store.properties.BorderProperty">
......
199 189
              </at>
200 190
             </object>
201 191
            </at>
192
            <at name="name">lblMimeType</at>
193
            <at name="width">58</at>
194
            <at name="text">Mime type</at>
195
            <at name="fill">
196
             <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
197
              <at name="name">fill</at>
198
             </object>
199
            </at>
200
            <at name="height">14</at>
202 201
           </object>
203 202
          </at>
204 203
         </object>
......
230 229
          <at name="classname">javax.swing.JTextField</at>
231 230
          <at name="properties">
232 231
           <object classname="com.jeta.forms.store.support.PropertyMap">
233
            <at name="height">20</at>
234
            <at name="width">388</at>
235
            <at name="name">txtMimeType</at>
236
            <at name="background" object="color">236,233,216</at>
237 232
            <at name="border">
238 233
             <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
239 234
              <super classname="com.jeta.forms.store.properties.BorderProperty">
......
254 249
              </at>
255 250
             </object>
256 251
            </at>
252
            <at name="background" object="color">236,233,216</at>
257 253
            <at name="editable">false</at>
254
            <at name="name">txtMimeType</at>
255
            <at name="width">463</at>
256
            <at name="height">20</at>
258 257
           </object>
259 258
          </at>
260 259
         </object>
......
262 261
       </object>
263 262
      </at>
264 263
     </item>
264
     <item >
265
      <at name="value">
266
       <object classname="com.jeta.forms.store.memento.BeanMemento">
267
        <super classname="com.jeta.forms.store.memento.ComponentMemento">
268
         <at name="cellconstraints">
269
          <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
270
           <at name="column">2</at>
271
           <at name="row">6</at>
272
           <at name="colspan">3</at>
273
           <at name="rowspan">1</at>
274
           <at name="halign">default</at>
275
           <at name="valign">default</at>
276
           <at name="insets" object="insets">0,0,0,0</at>
277
          </object>
278
         </at>
279
         <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
280
        </super>
281
        <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
282
        <at name="beanclass">javax.swing.JPanel</at>
283
        <at name="beanproperties">
284
         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
285
          <at name="classname">javax.swing.JPanel</at>
286
          <at name="properties">
287
           <object classname="com.jeta.forms.store.support.PropertyMap">
288
            <at name="name">addtionalPanel</at>
289
            <at name="width">532</at>
290
            <at name="height">480</at>
291
           </object>
292
          </at>
293
         </object>
294
        </at>
295
       </object>
296
      </at>
297
     </item>
265 298
    </object>
266 299
   </at>
267 300
   <at name="properties">
......
269 302
     <at name="classname">com.jeta.forms.gui.form.GridView</at>
270 303
     <at name="properties">
271 304
      <object classname="com.jeta.forms.store.support.PropertyMap">
272
       <at name="name"></at>
305
       <at name="border">
306
        <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
307
         <super classname="com.jeta.forms.store.properties.BorderProperty">
308
          <at name="name">border</at>
309
         </super>
310
         <at name="borders">
311
          <object classname="java.util.LinkedList"/>
312
         </at>
313
        </object>
314
       </at>
315
       <at name="name"/>
273 316
       <at name="fill">
274 317
        <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
275 318
         <at name="name">fill</at>
......
302 345
         </at>
303 346
        </object>
304 347
       </at>
305
       <at name="border">
306
        <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
307
         <super classname="com.jeta.forms.store.properties.BorderProperty">
308
          <at name="name">border</at>
309
         </super>
310
         <at name="borders">
311
          <object classname="java.util.LinkedList"/>
312
         </at>
313
        </object>
314
       </at>
315 348
      </object>
316 349
     </at>
317 350
    </object>
......
319 352
   <at name="cellpainters">
320 353
    <object classname="com.jeta.forms.store.support.Matrix">
321 354
     <at name="rows">
322
      <object classname="[Ljava.lang.Object;" size="5">
355
      <object classname="[Ljava.lang.Object;" size="7">
323 356
       <at name="item" index="0">
324 357
        <object classname="[Ljava.lang.Object;" size="5"/>
325 358
       </at>
......
335 368
       <at name="item" index="4">
336 369
        <object classname="[Ljava.lang.Object;" size="5"/>
337 370
       </at>
371
       <at name="item" index="5">
372
        <object classname="[Ljava.lang.Object;" size="5"/>
373
       </at>
374
       <at name="item" index="6">
375
        <object classname="[Ljava.lang.Object;" size="5"/>
376
       </at>
338 377
      </object>
339 378
     </at>
340 379
    </object>
org.gvsig.scripting/trunk/org.gvsig.scripting/org.gvsig.scripting.swing/org.gvsig.scripting.swing.impl/src/main/java/org/gvsig/scripting/swing/impl/composer/editors/ScriptEditorFactory.java
24 24
        return unit instanceof ScriptingScript;
25 25
    }
26 26
    
27

  
28
    @Override
29
    public int getPriority() {
30
        return 100;
31
    }
32
        
33
    
27 34
}
org.gvsig.scripting/trunk/org.gvsig.scripting/org.gvsig.scripting.swing/org.gvsig.scripting.swing.impl/src/main/java/org/gvsig/scripting/swing/impl/composer/editors/TextEditorFactory.java
26 26
        }
27 27
        return false;
28 28
    }
29

  
30
    @Override
31
    public int getPriority() {
32
        return 100;
33
    }
34
        
35
        
29 36
}
org.gvsig.scripting/trunk/org.gvsig.scripting/org.gvsig.scripting.swing/org.gvsig.scripting.swing.impl/src/main/java/org/gvsig/scripting/swing/impl/composer/editors/ExternalFileEditorView.java
22 22
   JTextField txtName = new JTextField();
23 23
   JLabel lblMimeType = new JLabel();
24 24
   JTextField txtMimeType = new JTextField();
25
   JPanel addtionalPanel = new JPanel();
25 26

  
26 27
   /**
27 28
    * Default constructor
......
113 114
   public JPanel createPanel()
114 115
   {
115 116
      JPanel jpanel1 = new JPanel();
116
      FormLayout formlayout1 = new FormLayout("FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE,FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE","CENTER:4DLU:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:4DLU:NONE");
117
      FormLayout formlayout1 = new FormLayout("FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE,FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE","CENTER:4DLU:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,FILL:DEFAULT:GROW(1.0),CENTER:4DLU:NONE");
117 118
      CellConstraints cc = new CellConstraints();
118 119
      jpanel1.setLayout(formlayout1);
119 120

  
......
135 136
      txtMimeType.setName("txtMimeType");
136 137
      jpanel1.add(txtMimeType,cc.xy(4,4));
137 138

  
138
      addFillComponents(jpanel1,new int[]{ 1,2,3,4,5 },new int[]{ 1,2,3,4,5 });
139
      addtionalPanel.setName("addtionalPanel");
140
      jpanel1.add(addtionalPanel,cc.xywh(2,6,3,1));
141

  
142
      addFillComponents(jpanel1,new int[]{ 1,2,3,4,5 },new int[]{ 1,2,3,4,5,6,7 });
139 143
      return jpanel1;
140 144
   }
141 145

  
org.gvsig.scripting/trunk/org.gvsig.scripting/org.gvsig.scripting.swing/org.gvsig.scripting.swing.impl/src/main/java/org/gvsig/scripting/swing/impl/composer/editors/ExternalFileEditor.java
2 2

  
3 3
import java.beans.PropertyChangeListener;
4 4
import javax.swing.JComponent;
5
import javax.swing.JPanel;
5 6
import org.gvsig.scripting.ScriptingExternalFile;
6 7
import org.gvsig.scripting.ScriptingUnit;
7 8
import org.gvsig.scripting.swing.api.JEditor;
......
59 60
        return this;
60 61
    }
61 62

  
63
    public JPanel getAdditionalPanel() {
64
        return this.addtionalPanel;
65
    }
62 66
}
org.gvsig.scripting/trunk/org.gvsig.scripting/org.gvsig.scripting.swing/org.gvsig.scripting.swing.impl/src/main/java/org/gvsig/scripting/swing/impl/composer/editors/TextEditor.java
40 40
        return this.unit;
41 41
    }
42 42

  
43
    protected void setUnit(ScriptingUnit unit) {
44
        this.unit = (ScriptingExternalFile) unit;
45
    }
46
    
47
    protected void setModified(boolean modified) {
48
        this.modified = modified;
49
    }
50
            
51
    protected BaseTextEditor getTextEditor() {
52
        return this.textEditor;
53
    }
54
    
55
    protected JTabbedPane getTabbedPane() {
56
        return this.tabs;
57
    }
58
    
59
    protected JPanel getAdditionalPropetiesPanel() {
60
        return this.propertiesPanel.getAdditionalPanel();
61
    }
62
    
63
    protected ExternalFileEditor getPropertiesPanel() {
64
        return this.propertiesPanel;
65
    }
66
    
67
    protected ChangeListenerSupport getChangeListeners() {
68
        return this.changeListeners;
69
    }
70
    
43 71
    private void initComponents() {
44 72
        this.textEditor = new BaseTextEditor();
45 73
        this.textEditor.addChangeListener(new PropertyChangeListener() {
org.gvsig.scripting/trunk/org.gvsig.scripting/org.gvsig.scripting.swing/org.gvsig.scripting.swing.impl/src/main/java/org/gvsig/scripting/swing/impl/composer/editors/DialogEditorFactory.java
2 2
package org.gvsig.scripting.swing.impl.composer.editors;
3 3

  
4 4
import org.gvsig.scripting.ScriptingDialog;
5
import org.gvsig.scripting.ScriptingScript;
6 5
import org.gvsig.scripting.ScriptingUnit;
7 6
import org.gvsig.scripting.swing.api.AbstractEditorFactory;
8
import org.gvsig.scripting.swing.api.EditorFactory;
9 7
import org.gvsig.scripting.swing.api.JEditor;
10 8
import org.gvsig.scripting.swing.api.ScriptingSwingLocator;
11 9

  
......
26 24
        return unit instanceof ScriptingDialog;
27 25
    }
28 26

  
29
    
27

  
28
    @Override
29
    public int getPriority() {
30
        return 100;
31
    }
32
        
33
        
30 34
}
org.gvsig.scripting/trunk/org.gvsig.scripting/org.gvsig.scripting.swing/org.gvsig.scripting.swing.api/src/main/java/org/gvsig/scripting/swing/api/ScriptingUIManager.java
2 2

  
3 3
import java.net.URL;
4 4
import java.util.Collection;
5
import java.util.List;
5 6
import javax.swing.Action;
6 7

  
7 8
import javax.swing.ImageIcon;
......
248 249
    
249 250
    public boolean hasEditor(ScriptingUnit unit);
250 251
    
252
    public List<EditorFactory> getEditorFactories();
253
    
251 254
}

Also available in: Unified diff