KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > enhydra > jawe > xml > elements > specialpanels > XMLDataTypesPanel


1 /* XMLDataTypesPanel.java
2  *
3  * Authors:
4  * Stefanovic Nenad chupo@iis.ns.ac.yu
5  * Bojanic Sasa sasaboy@neobee.net
6  * Puskas Vladimir vpuskas@eunet.yu
7  * Pilipovic Goran zboniek@uns.ac.yu
8  *
9  */

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 /**
24 * Creates a combo panel and a panel which type is determined by the
25 * choosen element from combo panel.
26 */

27 public class XMLDataTypesPanel extends XMLPanel {
28
29    XMLPanel prevPanel=null;
30    XMLPanel emptyPanel;
31
32    public XMLDataTypesPanel (DataTypes myOwner,String JavaDoc 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                //prevPanel.setElements();
62
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 JavaDoc ex) {}
113
114       return depth;
115    }
116
117 }
118
Popular Tags