1 10 11 12 package org.enhydra.jawe.xml.elements.specialpanels; 13 14 import org.enhydra.jawe.xml.*; 15 import org.enhydra.jawe.xml.elements.*; 16 import org.enhydra.jawe.xml.panels.*; 17 18 import java.util.*; 19 import javax.swing.*; 20 import java.awt.*; 21 import java.awt.event.*; 22 23 27 public class XMLDataTypesPanel extends XMLPanel { 28 29 XMLPanel prevPanel=null; 30 XMLPanel emptyPanel; 31 32 public XMLDataTypesPanel (DataTypes myOwner,String title) { 33 34 super(myOwner,3,title,XMLPanel.BOX_LAYOUT,true,true); 35 36 final JScrollPane jsp=new JScrollPane(); 37 jsp.setAlignmentX(Component.LEFT_ALIGNMENT); 38 jsp.setAlignmentY(Component.TOP_ALIGNMENT); 39 int w=550; 40 int h=250; 41 int depth=getDepth(); 42 43 44 w=w-depth*105; 45 if (w<330) w=330; 46 jsp.setPreferredSize(new Dimension(w,h)); 47 jsp.setMinimumSize(new Dimension(w,h)); 48 add(jsp); 49 50 emptyPanel=new XMLPanel(myOwner,2,"",XMLPanel.BOX_LAYOUT,true,false); 51 jsp.setViewportView(emptyPanel); 52 53 XMLComboPanel pCombo=new XMLComboPanel(myOwner); 54 emptyPanel.add(pCombo); 55 56 57 final JComboBox jcb=pCombo.getComboBox(); 58 jcb.addActionListener(new ActionListener() { 59 public void actionPerformed(ActionEvent ae) { 60 if (prevPanel!=null) { 61 emptyPanel.remove(prevPanel); 63 } 64 XMLElement choosen; 65 choosen=(XMLElement)jcb.getSelectedItem(); 66 if (choosen!=null) { 67 prevPanel=choosen.getPanel(); 68 emptyPanel.add(prevPanel); 69 } 70 jsp.paintAll(jsp.getGraphics()); 71 } 72 }); 73 jcb.setSelectedItem(myOwner.getChoosen()); 74 75 add(Box.createVerticalGlue()); 76 77 } 78 79 public boolean checkRequired () { 80 boolean isOK=true; 81 for (int i=0; i<emptyPanel.getComponentCount(); i++) { 82 XMLPanel p=(XMLPanel)emptyPanel.getComponent(i); 83 isOK=isOK && p.checkRequired(); 84 } 85 86 return isOK; 87 } 88 89 90 public void setElements () { 91 for (int i=0; i<emptyPanel.getComponentCount(); i++) { 92 XMLPanel p=(XMLPanel)emptyPanel.getComponent(i); 93 p.setElements(); 94 } 95 } 96 97 private int getDepth () { 98 int depth=0; 99 try { 100 DataTypes dtc=(DataTypes)getOwner(); 101 while (true) { 102 XMLComplexElement cal=dtc.getOwner(); 103 if (cal instanceof ArrayType) { 104 dtc=((ArrayType)cal).getOwner(); 105 } else if (cal instanceof ListType) { 106 dtc=((ListType)cal).getOwner(); 107 } else { 108 break; 109 } 110 depth++; 111 } 112 } catch (Exception ex) {} 113 114 return depth; 115 } 116 117 } 118 | Popular Tags |