KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > xml > schema > ui > nodes > categorized > customizer > ElementCustomizer


1 /*
2  * The contents of this file are subject to the terms of the Common Development
3  * and Distribution License (the License). You may not use this file except in
4  * compliance with the License.
5  *
6  * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
7  * or http://www.netbeans.org/cddl.txt.
8  *
9  * When distributing Covered Code, include this CDDL Header Notice in each file
10  * and include the License file at http://www.netbeans.org/cddl.txt.
11  * If applicable, add the following below the CDDL Header, with the fields
12  * enclosed by brackets [] replaced by your own identifying information:
13  * "Portions Copyrighted [year] [name of copyright owner]"
14  *
15  * The Original Software is NetBeans. The Initial Developer of the Original
16  * Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
17  * Microsystems, Inc. All Rights Reserved.
18  */

19
20 /*
21  * ElementCustomizer.java
22  *
23  * Created on January 17, 2006, 10:26 PM
24  */

25
26 package org.netbeans.modules.xml.schema.ui.nodes.categorized.customizer;
27
28 import java.io.IOException JavaDoc;
29 import java.awt.event.ItemListener JavaDoc;
30 import java.beans.PropertyChangeEvent JavaDoc;
31 import java.beans.PropertyChangeListener JavaDoc;
32 import java.util.Collection JavaDoc;
33 import javax.swing.event.DocumentEvent JavaDoc;
34 import javax.swing.event.DocumentListener JavaDoc;
35
36 import org.netbeans.modules.xml.schema.model.Element;
37 import org.netbeans.modules.xml.schema.model.LocalComplexType;
38 import org.netbeans.modules.xml.schema.model.LocalType;
39 import org.netbeans.modules.xml.schema.model.GlobalSimpleType;
40 import org.netbeans.modules.xml.schema.model.GlobalType;
41 import org.netbeans.modules.xml.schema.model.Sequence;
42 import org.netbeans.modules.xml.schema.model.SchemaComponent;
43 import org.netbeans.modules.xml.schema.model.SchemaComponentFactory;
44 import org.netbeans.modules.xml.schema.model.SchemaComponentReference;
45 import org.netbeans.modules.xml.schema.model.LocalSimpleType;
46 import org.netbeans.modules.xml.schema.model.SchemaModelFactory;
47 import org.netbeans.modules.xml.schema.model.SimpleTypeRestriction;
48 import org.netbeans.modules.xml.xam.dom.NamedComponentReference;
49 import org.netbeans.modules.xml.schema.ui.basic.editors.SchemaComponentSelectionPanel;
50 import org.netbeans.modules.xml.xam.ui.customizer.MessageDisplayer;
51
52 /**
53  * Element customizer
54  *
55  * @author Ajit Bhate
56  */

57 abstract class ElementCustomizer<T extends Element>
58         extends AbstractSchemaComponentCustomizer<T>
59         implements PropertyChangeListener JavaDoc {
60     
61     static final long serialVersionUID = 1L;
62     
63     /**
64      * Creates new form ElementCustomizer
65      */

66     public ElementCustomizer(SchemaComponentReference<T> reference,
67             SchemaComponent parent) {
68         super(reference, parent);
69         initComponents();
70         reset();
71     }
72     
73     public void applyChanges() throws IOException JavaDoc {
74         saveName();
75         if(_getType()!= getUIType() || _getStyle() != getUIStyle()) {
76             setModelType();
77         }
78     }
79     
80     public void reset() {
81         removeListeners();
82         initializeModel();
83         initializeUISelection();
84         addListeners();
85         if(hasParent()) {
86             setSaveEnabled(false);
87         } else {
88             setSaveEnabled(true);
89         }
90         setResetEnabled(false);
91     }
92     
93     /**
94      * Returns current name of the element
95      */

96     protected String JavaDoc _getName() {
97         String JavaDoc retValue = super._getName();
98         return retValue==null?"":retValue;
99     }
100     
101     /**
102      * Returns current type of the element
103      */

104     private GlobalType _getType() {
105         return currentGlobalType;
106     }
107     
108     /**
109      * Returns current style of the element
110      */

111     private ElementTypeStyle _getStyle() {
112         return currentStyle;
113     }
114     
115     /**
116      * initializes type variable
117      */

118     protected void _setType(GlobalType type) {
119         currentGlobalType = type;
120         currentStyle = ElementTypeStyle.EXISTING;
121     }
122     
123     /**
124      * extracts type and style from local type and initializes type and style variables
125      */

126     protected void _setType(LocalType localType) {
127         currentGlobalType = null;
128         currentStyle = ElementTypeStyle.NO_TYPE;
129         if(localType instanceof LocalSimpleType) {
130             currentStyle = ElementTypeStyle.ANONYMOUS_SIMPLE;
131         } else if(localType instanceof LocalComplexType) {
132             currentStyle = ElementTypeStyle.ANONYMOUS_COMPLEX;
133         }
134     }
135     
136     /**
137      * initializes non ui elements
138      */

139     protected abstract void initializeModel();
140     
141     /**
142      * Changes the type of element
143      *
144      */

145     protected abstract void setModelType();
146     
147     /**
148      * selects model node on ui
149      */

150     private void selectModelNode() {
151 // componentSelectionPanel.removePropertyChangeListener(this);
152
componentSelectionPanel.setInitialSelection(_getType());
153 // componentSelectionPanel.addPropertyChangeListener(this);
154
}
155     
156     /**
157      *
158      *
159      */

160     private void initializeTypeView() {
161         componentSelectionPanel = new SchemaComponentSelectionPanel<GlobalType>(
162                 getReference().get().getModel(),GlobalType.class, null, null, true);
163         componentSelectionPanel.addPropertyChangeListener(this);
164         typePanel.add(componentSelectionPanel.getTypeSelectionPanel(),
165                 java.awt.BorderLayout.CENTER);
166         componentSelectionPanel.getTypeSelectionPanel().getAccessibleContext().
167                 setAccessibleParent(typePanel);
168     }
169     
170     private void initializeUISelection() {
171         getMessageDisplayer().clear();
172         nameTextField.getDocument().removeDocumentListener(nameListener);
173         nameTextField.setText(_getName());
174         if(!hasParent()) nameTextField.setSelectionStart(0);
175         nameTextField.getDocument().addDocumentListener(nameListener);
176         ElementTypeStyle style = _getStyle();
177         ItemListener JavaDoc[] listeners;
178         switch(style) {
179             case NO_TYPE:
180                 noTypeRadioButton.setSelected(true);
181                 break;
182             case ANONYMOUS_COMPLEX:
183                 anonymousComplexRadioButton.setSelected(true);
184                 break;
185             case ANONYMOUS_SIMPLE:
186                 anonymousSimpleRadioButton.setSelected(true);
187                 break;
188             case EXISTING:
189                 existingRadioButton.setSelected(true);
190                 break;
191         }
192         enableDisableListView();
193         if(style==ElementTypeStyle.EXISTING) {
194             selectModelNode();
195         }
196         setPreviewText();
197     }
198     
199     protected LocalType createLocalType(SchemaComponentFactory factory,
200             ElementTypeStyle style, GlobalType reference) {
201         switch (style) {
202             case ANONYMOUS_COMPLEX :
203                 LocalComplexType lct = factory.createLocalComplexType();
204                 Sequence sequence = factory.createSequence();
205                 lct.setDefinition(sequence);
206                 return lct;
207             case ANONYMOUS_SIMPLE :
208                 LocalSimpleType lst = factory.createLocalSimpleType();
209                 SimpleTypeRestriction str = factory.createSimpleTypeRestriction();
210                 str.setBase(ElementCustomizer.createStringTypeReference(factory,str));
211                 lst.setDefinition(str);
212                 return lst;
213         }
214         return null;
215     }
216     
217     /**
218      * Retrieve the selected name from the UI.
219      *
220      * @return name from UI(nameTextField).
221      */

222     protected String JavaDoc getUIName() {
223         return nameTextField.getText();
224     }
225     
226     /**
227      * Retrieve the selected type from the UI.
228      *
229      * @return global type from UI, either simple or complex.
230      */

231     protected GlobalType getUIType() {
232         ElementTypeStyle style = getUIStyle();
233         if(style == ElementTypeStyle.NO_TYPE ||
234                 style == ElementTypeStyle.ANONYMOUS_COMPLEX ||
235                 style == ElementTypeStyle.ANONYMOUS_SIMPLE) {
236             return null;
237         }
238         return componentSelectionPanel.getCurrentSelection();
239     }
240     
241     /**
242      * Retrieve the selected style from the UI.
243      *
244      */

245     protected ElementTypeStyle getUIStyle() {
246         if (noTypeRadioButton.isSelected())
247             return ElementTypeStyle.NO_TYPE;
248         
249         if (anonymousComplexRadioButton.isSelected())
250             return ElementTypeStyle.ANONYMOUS_COMPLEX;
251         
252         if (anonymousSimpleRadioButton.isSelected())
253             return ElementTypeStyle.ANONYMOUS_SIMPLE;
254         
255         if (existingRadioButton.isSelected())
256             return ElementTypeStyle.EXISTING;
257         
258         return null;
259     }
260     
261     ////////////////////////////////////////////////////////////////////////////
262
// Enum
263
////////////////////////////////////////////////////////////////////////////
264

265     /**
266      *
267      *
268      */

269     enum ElementTypeStyle {
270         NO_TYPE, ANONYMOUS_COMPLEX, ANONYMOUS_SIMPLE, EXISTING
271     }
272     
273     /**
274      * This method is called from within the constructor to
275      * initializeTypeView the form.
276      * WARNING: Do NOT modify this code. The content of this method is
277      * always regenerated by the Form Editor.
278      */

279     // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
280
private void initComponents() {
281         elementTypeButtonGroup = new javax.swing.ButtonGroup JavaDoc();
282         previewLabel = new javax.swing.JLabel JavaDoc();
283         jScrollPane1 = new javax.swing.JScrollPane JavaDoc();
284         previewPane = new javax.swing.JEditorPane JavaDoc() {
285             static final long serialVersionUID = 1L;
286             // disable mouse and mouse motion events
287
protected void processMouseEvent(java.awt.event.MouseEvent JavaDoc e) {
288                 e.consume();
289             }
290             protected void processMouseMotionEvent(java.awt.event.MouseEvent JavaDoc e) {
291                 e.consume();
292             }
293         };
294         typeLabel = new javax.swing.JLabel JavaDoc();
295         anonymousComplexRadioButton = new javax.swing.JRadioButton JavaDoc();
296         anonymousSimpleRadioButton = new javax.swing.JRadioButton JavaDoc();
297         noTypeRadioButton = new javax.swing.JRadioButton JavaDoc();
298         existingRadioButton = new javax.swing.JRadioButton JavaDoc();
299         typePanel = new javax.swing.JPanel JavaDoc();
300         mPanel = new javax.swing.JPanel JavaDoc();
301         namePanel = new javax.swing.JPanel JavaDoc();
302         nameLabel = new javax.swing.JLabel JavaDoc();
303         nameTextField = new javax.swing.JTextField JavaDoc();
304
305         previewLabel.setLabelFor(previewPane);
306         org.openide.awt.Mnemonics.setLocalizedText(previewLabel, org.openide.util.NbBundle.getMessage(ElementCustomizer.class, "TITLE_CustomizerForm_Preview"));
307         previewLabel.setToolTipText(org.openide.util.NbBundle.getMessage(ElementCustomizer.class, "HINT_ElementForm_Preview"));
308
309         previewPane.setEditable(false);
310         previewPane.setContentType("text/xml");
311         previewPane.setEnabled(false);
312         jScrollPane1.setViewportView(previewPane);
313
314         org.openide.awt.Mnemonics.setLocalizedText(typeLabel, org.openide.util.NbBundle.getMessage(ElementCustomizer.class, "LBL_CustomizerForm_Type", new Object JavaDoc[] {}));
315         typeLabel.setToolTipText(org.openide.util.NbBundle.getMessage(ElementCustomizer.class, "HINT_ElementForm_Type"));
316
317         elementTypeButtonGroup.add(anonymousComplexRadioButton);
318         org.openide.awt.Mnemonics.setLocalizedText(anonymousComplexRadioButton, org.openide.util.NbBundle.getMessage(ElementCustomizer.class, "LBL_ElementForm_AnonComplexType"));
319         anonymousComplexRadioButton.setToolTipText(org.openide.util.NbBundle.getMessage(ElementCustomizer.class, "HINT_ElementForm_ComplexType"));
320         anonymousComplexRadioButton.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
321         anonymousComplexRadioButton.setMargin(new java.awt.Insets JavaDoc(0, 0, 0, 0));
322
323         elementTypeButtonGroup.add(anonymousSimpleRadioButton);
324         org.openide.awt.Mnemonics.setLocalizedText(anonymousSimpleRadioButton, org.openide.util.NbBundle.getMessage(ElementCustomizer.class, "LBL_ElementForm_AnonSimpleType"));
325         anonymousSimpleRadioButton.setToolTipText(org.openide.util.NbBundle.getMessage(ElementCustomizer.class, "HINT_ElementForm_SimpleType"));
326         anonymousSimpleRadioButton.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
327         anonymousSimpleRadioButton.setMargin(new java.awt.Insets JavaDoc(0, 0, 0, 0));
328
329         elementTypeButtonGroup.add(noTypeRadioButton);
330         org.openide.awt.Mnemonics.setLocalizedText(noTypeRadioButton, org.openide.util.NbBundle.getMessage(ElementCustomizer.class, "LBL_ElementForm_NoType"));
331         noTypeRadioButton.setToolTipText(org.openide.util.NbBundle.getMessage(ElementCustomizer.class, "HINT_ElementForm_NoType"));
332         noTypeRadioButton.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
333         noTypeRadioButton.setMargin(new java.awt.Insets JavaDoc(0, 0, 0, 0));
334
335         elementTypeButtonGroup.add(existingRadioButton);
336         org.openide.awt.Mnemonics.setLocalizedText(existingRadioButton, org.openide.util.NbBundle.getMessage(ElementCustomizer.class, "LBL_ElementForm_ExistingType"));
337         existingRadioButton.setToolTipText(org.openide.util.NbBundle.getMessage(ElementCustomizer.class, "HINT_ElementForm_ExistingType"));
338         existingRadioButton.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
339         existingRadioButton.setMargin(new java.awt.Insets JavaDoc(0, 0, 0, 0));
340
341         typePanel.setLayout(new java.awt.BorderLayout JavaDoc());
342
343         initializeTypeView();
344
345         mPanel.setLayout(new java.awt.BorderLayout JavaDoc());
346
347         mPanel.add(getMessageDisplayer().getComponent(),java.awt.BorderLayout.CENTER);
348
349         nameLabel.setLabelFor(nameTextField);
350         org.openide.awt.Mnemonics.setLocalizedText(nameLabel, org.openide.util.NbBundle.getMessage(ElementCustomizer.class, "LBL_CustomizerForm_Name"));
351         nameLabel.setToolTipText(org.openide.util.NbBundle.getMessage(ElementCustomizer.class, "HINT_ElementForm_Name"));
352
353         nameTextField.setEditable(!hasParent());
354
355         org.jdesktop.layout.GroupLayout namePanelLayout = new org.jdesktop.layout.GroupLayout(namePanel);
356         namePanel.setLayout(namePanelLayout);
357         namePanelLayout.setHorizontalGroup(
358             namePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
359             .add(namePanelLayout.createSequentialGroup()
360                 .addContainerGap()
361                 .add(nameLabel)
362                 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
363                 .add(nameTextField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 445, Short.MAX_VALUE)
364                 .addContainerGap())
365         );
366         namePanelLayout.setVerticalGroup(
367             namePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
368             .add(namePanelLayout.createSequentialGroup()
369                 .addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
370                 .add(namePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
371                     .add(nameLabel)
372                     .add(nameTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
373         );
374
375         org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this);
376         this.setLayout(layout);
377         layout.setHorizontalGroup(
378             layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
379             .add(layout.createSequentialGroup()
380                 .addContainerGap()
381                 .add(typeLabel)
382                 .addContainerGap(462, Short.MAX_VALUE))
383             .add(namePanel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
384             .add(layout.createSequentialGroup()
385                 .addContainerGap()
386                 .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
387                     .add(jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 480, Short.MAX_VALUE)
388                     .add(previewLabel)
389                     .add(layout.createSequentialGroup()
390                         .add(11, 11, 11)
391                         .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
392                             .add(anonymousSimpleRadioButton)
393                             .add(anonymousComplexRadioButton)
394                             .add(noTypeRadioButton)
395                             .add(existingRadioButton))))
396                 .addContainerGap())
397             .add(layout.createSequentialGroup()
398                 .add(38, 38, 38)
399                 .add(typePanel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 452, Short.MAX_VALUE)
400                 .addContainerGap())
401             .add(mPanel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 500, Short.MAX_VALUE)
402         );
403         layout.setVerticalGroup(
404             layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
405             .add(layout.createSequentialGroup()
406                 .add(namePanel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
407                 .add(11, 11, 11)
408                 .add(typeLabel)
409                 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
410                 .add(anonymousComplexRadioButton)
411                 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
412                 .add(anonymousSimpleRadioButton)
413                 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
414                 .add(noTypeRadioButton)
415                 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
416                 .add(existingRadioButton)
417                 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
418                 .add(typePanel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 217, Short.MAX_VALUE)
419                 .add(11, 11, 11)
420                 .add(previewLabel)
421                 .add(5, 5, 5)
422                 .add(jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 97, Short.MAX_VALUE)
423                 .add(0, 0, 0)
424                 .add(mPanel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 60, Short.MAX_VALUE))
425         );
426     }// </editor-fold>//GEN-END:initComponents
427

428     ////////////////////////
429
// event handling
430
////////////////////////
431
/**
432      * Since it implements PCL.
433      */

434     public void propertyChange(PropertyChangeEvent JavaDoc event) {
435         if (event.getPropertyName().equals(SchemaComponentSelectionPanel.PROPERTY_SELECTION)) {
436             setPreviewText();
437             determineValidity();
438         }
439     }
440     
441     private void enableDisableListView() {
442         switch (getUIStyle()) {
443             case NO_TYPE:
444             case ANONYMOUS_COMPLEX:
445             case ANONYMOUS_SIMPLE:
446                 componentSelectionPanel.setEnabled(false);
447                 break;
448             case EXISTING:
449                 componentSelectionPanel.setEnabled(true);
450                 break;
451         }
452     }
453     
454     
455     /**
456      * Based on the current radio button status and node selections, decide
457      * if we are in a valid state for accepting the user's input.
458      */

459     private void determineValidity() {
460         getMessageDisplayer().clear();
461         if(!isNameChanged() &&
462                 _getStyle() == getUIStyle() &&
463                 _getType() == getUIType()) {
464             if(hasParent()) {
465                 setSaveEnabled(false);
466             } else {
467                 setSaveEnabled(true);
468             }
469             setResetEnabled(false);
470         } else {
471             setResetEnabled(true);
472             boolean valid = false;
473             ElementTypeStyle style = getUIStyle();
474             if(style == ElementTypeStyle.NO_TYPE ||
475                     style == ElementTypeStyle.ANONYMOUS_COMPLEX ||
476                     style == ElementTypeStyle.ANONYMOUS_SIMPLE) {
477                 valid = true;
478             } else if (getUIType()!=null) {
479                 valid = true;
480             }
481             setSaveEnabled(valid && (!isNameChanged() || isNameValid()));
482             if(!valid)
483                 getMessageDisplayer().annotate(org.openide.util.NbBundle.
484                         getMessage(ElementCustomizer.class,
485                         "MSG_Type_Error"),
486                         MessageDisplayer.Type.ERROR);
487         }
488     }
489     
490     private void addListeners() {
491         if (nameListener == null) {
492             nameListener = new DocumentListener JavaDoc() {
493                 public void changedUpdate(DocumentEvent JavaDoc e) {
494                     setPreviewText();
495                     determineValidity();
496                 }
497                 public void insertUpdate(DocumentEvent JavaDoc e) {
498                     setPreviewText();
499                     determineValidity();
500                 }
501                 public void removeUpdate(DocumentEvent JavaDoc e) {
502                     setPreviewText();
503                     determineValidity();
504                 }
505             };
506         }
507         nameTextField.getDocument().addDocumentListener(nameListener);
508         if(typeButtonsListener == null) {
509             typeButtonsListener = new ItemListener JavaDoc() {
510                 public void itemStateChanged(java.awt.event.ItemEvent JavaDoc evt) {
511                     if (evt.getStateChange() == java.awt.event.ItemEvent.SELECTED) {
512                         enableDisableListView();
513                         setPreviewText();
514                         determineValidity();
515                     }
516                 }
517             };
518         }
519         noTypeRadioButton.addItemListener(typeButtonsListener);
520         anonymousComplexRadioButton.addItemListener(typeButtonsListener);
521         anonymousSimpleRadioButton.addItemListener(typeButtonsListener);
522         existingRadioButton.addItemListener(typeButtonsListener);
523     }
524     
525     private void removeListeners() {
526         nameTextField.getDocument().removeDocumentListener(nameListener);
527         noTypeRadioButton.removeItemListener(typeButtonsListener);
528         anonymousComplexRadioButton.removeItemListener(typeButtonsListener);
529         anonymousSimpleRadioButton.removeItemListener(typeButtonsListener);
530         existingRadioButton.removeItemListener(typeButtonsListener);
531     }
532     
533     
534     private void setPreviewText() {
535         StringBuffer JavaDoc retValue = new StringBuffer JavaDoc("<");
536         String JavaDoc prefix = getReference().get().getPeer().getPrefix();
537         if(prefix!=null) retValue.append(prefix+":");
538         retValue.append("element name=\"");
539         retValue.append(getUIName());
540         retValue.append("\"");
541         switch(getUIStyle()) {
542             case NO_TYPE:
543                 retValue.append(">");
544                 break;
545             case EXISTING:
546                 retValue.append(" type=\"");
547                 GlobalType gt = getUIType();
548                 if(gt!=null) {
549                     retValue.append(gt.getName());
550                 }
551                 retValue.append("\">");
552                 break;
553             case ANONYMOUS_COMPLEX:
554                 retValue.append(">");
555                 retValue.append("\n <");
556                 if(prefix!=null) retValue.append(prefix+":");
557                 retValue.append("complexType>");
558                 retValue.append("\n <");
559                 if(prefix!=null) retValue.append(prefix+":");
560                 retValue.append("sequence/>");
561                 retValue.append("\n </");
562                 if(prefix!=null) retValue.append(prefix+":");
563                 retValue.append("complexType>");
564                 break;
565             case ANONYMOUS_SIMPLE:
566                 retValue.append(">");
567                 retValue.append("\n <");
568                 if(prefix!=null) retValue.append(prefix+":");
569                 retValue.append("simpleType>");
570                 retValue.append("\n <");
571                 if(prefix!=null) retValue.append(prefix+":");
572                 retValue.append("restriction base=\"");
573                 if(prefix!=null) retValue.append(prefix+":");
574                 retValue.append("string\"/>");
575                 retValue.append("\n </");
576                 if(prefix!=null) retValue.append(prefix+":");
577                 retValue.append("simpleType>");
578                 break;
579         }
580         retValue.append("\n</");
581         if(prefix!=null) retValue.append(prefix+":");
582         retValue.append("element>\n");
583         previewPane.setText(retValue.toString());
584     }
585     
586     // Variables declaration - do not modify//GEN-BEGIN:variables
587
public javax.swing.JRadioButton JavaDoc anonymousComplexRadioButton;
588     public javax.swing.JRadioButton JavaDoc anonymousSimpleRadioButton;
589     public javax.swing.ButtonGroup JavaDoc elementTypeButtonGroup;
590     public javax.swing.JRadioButton JavaDoc existingRadioButton;
591     public javax.swing.JScrollPane JavaDoc jScrollPane1;
592     public javax.swing.JPanel JavaDoc mPanel;
593     public javax.swing.JLabel JavaDoc nameLabel;
594     public javax.swing.JPanel JavaDoc namePanel;
595     public javax.swing.JTextField JavaDoc nameTextField;
596     public javax.swing.JRadioButton JavaDoc noTypeRadioButton;
597     public javax.swing.JLabel JavaDoc previewLabel;
598     public javax.swing.JEditorPane JavaDoc previewPane;
599     public javax.swing.JLabel JavaDoc typeLabel;
600     public javax.swing.JPanel JavaDoc typePanel;
601     // End of variables declaration//GEN-END:variables
602

603     // creates primitive string global reference
604
static NamedComponentReference<GlobalSimpleType>
605             createStringTypeReference(SchemaComponentFactory factory,
606             SchemaComponent component) {
607         Collection JavaDoc<GlobalSimpleType> types = SchemaModelFactory.getDefault().
608                 getPrimitiveTypesModel().getSchema().getSimpleTypes();
609         for (GlobalSimpleType type : types) {
610             if (type.getName().equals("string")) {
611                 return factory.createGlobalReference(type,
612                         GlobalSimpleType.class, component);
613             }
614         }
615         return null;
616     }
617     
618     private DocumentListener JavaDoc nameListener;
619     private ItemListener JavaDoc typeButtonsListener;
620     private transient ElementTypeStyle currentStyle;
621     private transient GlobalType currentGlobalType;
622     private transient SchemaComponentSelectionPanel<GlobalType>
623             componentSelectionPanel;
624 }
625
Popular Tags