1 19 20 28 29 package org.netbeans.modules.xml.schema.abe; 30 31 import java.awt.Color ; 32 import java.awt.Component ; 33 import java.awt.Font ; 34 import java.beans.PropertyChangeEvent ; 35 import java.beans.PropertyChangeListener ; 36 import javax.swing.JLabel ; 37 import org.netbeans.modules.xml.axi.AXIType; 38 import org.netbeans.modules.xml.axi.AbstractElement; 39 import org.netbeans.modules.xml.axi.AnyElement; 40 import org.netbeans.modules.xml.axi.Element; 41 import org.netbeans.modules.xml.axi.datatype.Datatype; 42 import org.openide.util.NbBundle; 43 import org.netbeans.modules.xml.axi.ContentModel; 44 45 49 public class ElementPropertiesPanel extends ExtraPropertiesPanel{ 50 private static final long serialVersionUID = 7526472295622776147L; 51 private AbstractElement element; 52 private InstanceUIContext context; 53 private JLabel contentType; 54 JLabel contentModelInfoLabel; 55 int interComponentSpacingOrig = 0; 56 57 public ElementPropertiesPanel(AbstractElement element, InstanceUIContext context) { 58 super(true, context); 59 this.element = element; 60 this.context = context; 61 interComponentSpacingOrig = getInterComponentSpacing(); 62 initialize(); 63 this.element.addPropertyChangeListener(new ModelEventMediator(this, this.element){ 64 public void _propertyChange(PropertyChangeEvent evt) { 65 67 refreshItems(); 68 } 70 }); 71 72 if(element instanceof Element){ 73 Element elm = ((Element)this.element); 74 AXIType at = elm.getType(); 75 if((at instanceof ContentModel)){ 76 ((ContentModel)at).addPropertyChangeListener(new ModelEventMediator(this, ((ContentModel)at)){ 77 public void _propertyChange(PropertyChangeEvent evt) { 78 refreshItems(); 79 } 80 }); 81 } 82 } 83 } 84 85 private void initialize() { 86 refreshItems(); 87 } 88 89 private void refreshItems(){ 90 cleanupAll(); 91 setInterComponentSpacing(interComponentSpacingOrig); 92 JLabel constraints = null; 94 if(element.supportsCardinality()){ 95 String str = UIUtilities.getConstraintsString(element.getMinOccurs(), 96 element.getMaxOccurs()); 97 if(str != null){ 98 constraints = new JLabel (str); Font font = constraints.getFont(); 100 font = new Font (font.getFontName(), Font.PLAIN, 101 InstanceDesignConstants.PROPS_FONT_SIZE); 102 constraints.setFont(font); 103 constraints.setForeground(new Color (139, 139, 139)); 104 constraints.setToolTipText(NbBundle.getMessage(ElementPropertiesPanel.class, 105 "TTP_ELEMENT_CARDINALITY")); 106 } 107 } 108 if(!(element instanceof AnyElement)){ 110 contentModelInfoLabel = UIUtilities.getContentModelInfoLabel(this.element, false, true, context); 111 } 112 113 if( (constraints != null) && (contentModelInfoLabel != null) ){ 114 append(constraints, true); 115 append(contentModelInfoLabel, false); 116 }else if(( (constraints == null) && (contentModelInfoLabel == null) )){ 117 return; 118 }else{ 119 Component comp = contentModelInfoLabel == null ? constraints : 120 contentModelInfoLabel; 121 boolean transmit = (contentModelInfoLabel == null); 122 append(comp, transmit); 123 } 124 revalidate(); 125 repaint(); 126 } 127 } 128 | Popular Tags |