1 19 20 25 26 package org.netbeans.modules.xml.schema.ui.nodes.categorized.customizer; 27 28 import org.netbeans.modules.xml.schema.model.SchemaComponent; 29 import org.openide.util.HelpCtx; 30 import org.netbeans.modules.xml.schema.model.GlobalElement; 32 import org.netbeans.modules.xml.schema.model.GlobalType; 33 import org.netbeans.modules.xml.schema.model.LocalType; 34 import org.netbeans.modules.xml.schema.model.SchemaComponentFactory; 35 import org.netbeans.modules.xml.schema.model.SchemaComponentReference; 36 import org.netbeans.modules.xml.schema.ui.nodes.categorized.customizer.ElementCustomizer.ElementTypeStyle; 37 38 43 public class AdvancedGlobalElementCustomizer extends ElementCustomizer<GlobalElement> 44 { 45 46 static final long serialVersionUID = 1L; 47 48 51 54 public AdvancedGlobalElementCustomizer( 55 SchemaComponentReference<GlobalElement> reference) 56 { 57 this(reference, null); 58 } 59 60 public AdvancedGlobalElementCustomizer( 61 SchemaComponentReference<GlobalElement> reference, 62 SchemaComponent parent) 63 { 64 super(reference, parent); 65 } 66 67 70 protected void initializeModel() 71 { 72 GlobalElement element = getReference().get(); 73 if (element.getType() != null) 74 { 75 _setType(element.getType().get()); 76 } 77 else 78 { 79 _setType(element.getInlineType()); 80 } 81 } 82 83 87 protected void setModelType() 88 { 89 GlobalElement element = getReference().get(); 90 SchemaComponentFactory factory = element.getModel().getFactory(); 91 92 ElementTypeStyle newStyle = getUIStyle(); 93 GlobalType newType = getUIType(); 94 _setType(newType); 95 if(newStyle == ElementTypeStyle.EXISTING) 96 { 97 if(element.getInlineType()!=null) 98 { 99 element.setInlineType(null); 100 } 101 element.setType(factory.createGlobalReference( 102 newType, GlobalType.class, element)); 103 } 104 else 105 { 106 if(element.getType()!=null) 107 { 108 element.setType(null); 109 } 110 LocalType lt = createLocalType(factory, newStyle, newType); 111 element.setInlineType(lt); 112 } 113 } 114 115 public HelpCtx getHelpCtx() 116 { 117 return new HelpCtx(AdvancedGlobalElementCustomizer.class); 118 } 119 } 120 | Popular Tags |