Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: screengen/borders/BorderEditPanel.java


1   //  Screengen - A visual gui builder for java windows
2   //  Copyright (C) 1999 Mark O'Donohue 
3   //  <mark.odonohue@ludwig.edu.au>
4   //
5   //  This program is free software; you can redistribute it and/or modify
6   //  it under the terms of the GNU General Public License as published by
7   //  the Free Software Foundation; either version 2 of the License, or
8   //  any later version.
9   //  This program is distributed in the hope that it will be useful,
10  //  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  //  GNU General Public License for more details.
13  //  You should have received a copy of the GNU General Public License
14  //  along with this program; if not, write to the Free Software
15  //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16  //
17  
18  package screengen.borders;
19  
20  import java.util.*;
21  import java.awt.*;
22  import java.awt.event.*;
23  
24  import javax.swing.*;
25  import javax.swing.border.*;
26  
27  public class BorderEditPanel extends BorderEditPanelBase implements BorderChangeListener {
28      DefaultComboBoxModel oBorderList;
29      boolean bInitNewComponentFlg = false;
30      JComponent oComp;
31      Border oBorder;
32  
33  
34      static JDesktopPane oDesktop;
35  
36  
37      public static void setDesktop(JDesktopPane oNewDesktop) {
38          oDesktop = oNewDesktop;
39      }
40  
41      public static void addToDesktop(JInternalFrame oNew) {
42          oDesktop.add(oNew, JLayeredPane.PALETTE_LAYER);
43  
44      }
45  
46      public BorderEditPanel() {
47  
48          OkButton.setVisible(false);
49          CancelButton.setVisible(false);
50          BuildComboBoxOptions();
51      }
52  
53  
54      public void BuildComboBoxOptions() {
55          oBorderList = new DefaultComboBoxModel();
56  
57          FactoryBorderItem.getFactoryBorders();
58  
59          Vector oBorders = BorderItem.getAllBorders();
60          for (Enumeration e= oBorders.elements(); e.hasMoreElements();) {
61              BorderItem oItem = (BorderItem) e.nextElement();
62              oBorderList.addElement(oItem);
63              BorderDetailPanel.add(BuildBorderEditPanel(oItem), oItem.toString());
64          }
65  
66          BorderTypeComboBox.setModel(oBorderList);
67          BorderTypeComboBox.setRenderer(new BorderCellRenderer());
68  
69          BorderTypeComboBox.addItemListener( new ItemListener() {
70              public void itemStateChanged(ItemEvent evt) {
71  //System.out.println("Checkbox Item has changed state ");
72                  Object oBorder = BorderTypeComboBox.getSelectedItem();
73                  oBorderDetailsLayout.show(BorderDetailPanel,oBorder.toString());
74              }
75          });
76  
77  
78          BorderTypeComboBox.addActionListener( new ActionListener() {
79              public void actionPerformed(ActionEvent e) {
80                  if (bInitNewComponentFlg) return;
81  
82                  ChangeBorderType();
83              }
84          });
85  
86      }
87  
88  
89      CardLayout oBorderDetailsLayout;
90  
91      JPanel BuildBorderDetailPanel() {
92          JPanel BorderDetailPanel = new JPanel();
93          oBorderDetailsLayout = new CardLayout();
94          BorderDetailPanel.setLayout(oBorderDetailsLayout);
95          return BorderDetailPanel;
96      }
97  
98      Hashtable oBorderToPanelMap = new Hashtable();
99  
100     JComponent BuildBorderEditPanel(BorderItem oItem) {
101         BorderItemPanel oChild =  oItem.BuildPanel();
102         oBorderToPanelMap.put(oItem, oChild);
103 
104         oChild.addBorderChangeListener(this);
105 
106         return oChild;
107     }
108 
109 
110     void ChangeBorderType() {
111         BorderItem oItem = (BorderItem) BorderTypeComboBox.getSelectedItem();
112         Border oNewBorder = oItem.createNewInstance();
113         if (oNewBorder != null) {
114 //            System.out.println("Changed border ");
115             changedBorder(oNewBorder);
116         }
117         UpdatePanelValuesForSelectedBorderItem();
118         
119         //System.out.println("User has elected to change border type");
120         //                oBorderDetailsLayout.show(BorderDetailPanel,oBorder.toString());
121     }
122 
123     void UpdatePanelValuesForSelectedBorderItem() {        
124         BorderItem oItem = BorderItem.getBorderItemForBorder(oBorder);
125         BorderItemPanel oPanel = (BorderItemPanel) oBorderToPanelMap.get(oItem);
126         if (oPanel != null) {
127             oPanel.SetValuesFrom(oComp, oBorder);
128         }
129     }
130 
131     public void changedBorder(Border oNewBorder) {
132         BorderItem.setDisplayedComponentBorder(oComp, oNewBorder);
133         oBorder = BorderItem.getDisplayedComponentBorder(oComp);
134     }
135 
136 
137 
138     public void SetValuesFrom(JComponent oNewComp, Border  oNewBorder) {
139         oComp = oNewComp;
140         oBorder = oNewBorder;
141 //        System.out.println("dsks-1");
142         BorderItem oItem = BorderItem.getBorderItemForBorder(oBorder);
143 //System.out.println("SetValueFrom " + oBorder + " " + oItem);
144         if (oItem != null) {
145 //            System.out.println("dsks -2");
146 
147             bInitNewComponentFlg = true;
148             BorderTypeComboBox.setSelectedItem(oItem);
149             bInitNewComponentFlg = false;
150             UpdatePanelValuesForSelectedBorderItem();
151         }
152 
153     }
154 
155     public void ShowBorderForComponent(JComponent oNewComp) {
156         SetValuesFrom(oNewComp, BorderItem.getDisplayedComponentBorder(oNewComp));
157     }
158 }