KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > openharmonise > him > displaycomponents > table > title > TitleBar


1 /*
2  * (C) Copyright SimulacraMedia 2003. All rights reserved.
3  *
4  * Created on 23-Nov-2003
5  *
6  */

7 package org.openharmonise.him.displaycomponents.table.title;
8
9 import java.awt.Color JavaDoc;
10 import java.awt.Dimension JavaDoc;
11 import java.awt.FlowLayout JavaDoc;
12 import java.awt.Font JavaDoc;
13 import java.awt.LayoutManager JavaDoc;
14 import java.awt.event.ActionEvent JavaDoc;
15 import java.awt.event.ActionListener JavaDoc;
16
17 import javax.swing.ImageIcon JavaDoc;
18 import javax.swing.JButton JavaDoc;
19 import javax.swing.JComboBox JavaDoc;
20 import javax.swing.JFrame JavaDoc;
21 import javax.swing.JLabel JavaDoc;
22 import javax.swing.JPanel JavaDoc;
23
24 import org.openharmonise.him.configuration.ConfigStore;
25 import org.openharmonise.him.displaycomponents.table.TableView;
26 import org.openharmonise.him.displaycomponents.table.order.OrderDialog;
27 import org.openharmonise.him.harmonise.HarmonisePaths;
28 import org.openharmonise.swing.FontManager;
29 import org.openharmonise.vfs.VirtualFile;
30 import org.openharmonise.vfs.context.ContextEvent;
31 import org.openharmonise.vfs.context.ContextHandler;
32 import org.openharmonise.vfs.context.ContextListener;
33 import org.openharmonise.vfs.context.ContextType;
34 import org.openharmonise.vfs.gui.IconManager;
35
36 /**
37  * The title bar for the table view.
38  *
39  * @author Matthew Large
40  * @version $Revision: 1.2 $
41  *
42  */

43 public class TitleBar extends JPanel JavaDoc implements ActionListener JavaDoc, ContextListener {
44
45     /**
46      * Table view.
47      */

48     private TableView m_table = null;
49     
50     /**
51      * Selected highlight colour.
52      */

53     private Color JavaDoc m_selectedColor = new Color JavaDoc(173,169,143);
54     
55     /**
56      * Label for the title.
57      */

58     private JLabel JavaDoc m_title = new JLabel JavaDoc();
59     
60     /**
61      * Display name of collection.
62      */

63     private String JavaDoc m_sDisplayName = "";
64     
65     /**
66      * File name of collection.
67      */

68     private String JavaDoc m_sFileName = "";
69     
70     /**
71      * Order type selector.
72      */

73     private JComboBox JavaDoc m_orderChooser = new JComboBox JavaDoc(new String JavaDoc[]{"View by name", "View by date", "View by default order"});
74     
75     /**
76      * Set default order button.
77      */

78     private JButton JavaDoc m_OrderServerButton = new JButton JavaDoc("Set Default order");
79     
80     /**
81      * Resource name display type selector.
82      */

83     private JComboBox JavaDoc m_displayChooser = new JComboBox JavaDoc(new String JavaDoc[]{"Display resource filename", "Display resource title" , "Display resource harmonise id"});
84
85     /**
86      *
87      */

88     public TitleBar() {
89         super();
90         this.setup();
91     }
92     
93     /**
94      * Confiures the title bar.
95      *
96      */

97     private void setup() {
98         FlowLayout JavaDoc fl = new FlowLayout JavaDoc(FlowLayout.LEFT);
99         fl.setVgap(3);
100         fl.setHgap(10);
101         this.setLayout(fl);
102         
103 // String fontName = "Dialog";
104
// int fontSize = 13;
105
// Font font = new Font(fontName, Font.PLAIN, 11);
106
// Font boldFont = new Font(fontName, Font.BOLD, fontSize);
107

108         this.m_title.setFont( FontManager.getInstance().getFont(FontManager.FONT_RESOURCE_TITLE_BOLD) );
109         this.m_title.setPreferredSize(new Dimension JavaDoc(180, 20));
110         this.add(this.m_title);
111         
112         this.m_orderChooser.addActionListener(this);
113         this.m_orderChooser.setFont( FontManager.getInstance().getFont(FontManager.FONT_STANDARD) );
114         this.m_orderChooser.setActionCommand("ORDER_CHOOSER");
115         this.m_orderChooser.setPreferredSize(new Dimension JavaDoc(150, 20));
116         this.m_orderChooser.setVisible(false);
117         this.add(this.m_orderChooser);
118         
119         this.m_OrderServerButton.setFont( FontManager.getInstance().getFont(FontManager.FONT_STANDARD) );
120         this.m_OrderServerButton.setPreferredSize(new Dimension JavaDoc(120, 20));
121         this.m_OrderServerButton.setVisible(false);
122         this.m_OrderServerButton.setActionCommand("ORDER");
123         this.m_OrderServerButton.addActionListener(this);
124         this.m_OrderServerButton.setToolTipText("Set the default order for the current collection");
125         this.add(this.m_OrderServerButton);
126         
127         this.m_displayChooser.addActionListener(this);
128         this.m_displayChooser.setFont( FontManager.getInstance().getFont(FontManager.FONT_STANDARD) );
129         this.m_displayChooser.setActionCommand("DISPLAY_CHOOSER");
130         this.m_displayChooser.setPreferredSize(new Dimension JavaDoc(150, 20));
131         this.m_displayChooser.setVisible(false);
132         this.add(this.m_displayChooser);
133         String JavaDoc sValue = ConfigStore.getInstance().getPropertyValue("FILENAME_DISPLAY");
134         if(sValue!=null && sValue.length()>0 && sValue.equals("FILENAME")) {
135             this.m_displayChooser.setSelectedItem("Display resource filename");
136         } else if(sValue!=null && sValue.length()>0 && sValue.equals("ID")) {
137             this.m_displayChooser.setSelectedItem("Display resource harmonise id");
138         } else {
139             this.m_displayChooser.setSelectedItem("Display resource title");
140         }
141         
142         
143         ContextHandler.getInstance().addListener(ContextType.CONTEXT_DIRS, this);
144         ContextHandler.getInstance().addListener(ContextType.CONTEXT_TABS, this);
145         ContextHandler.getInstance().addListener(ContextType.CONTEXT_FILENAME_DISPLAY, this);
146     }
147     
148     /**
149      * Sets the title.
150      *
151      * @param sTitle Title
152      */

153     public void setTitle(String JavaDoc sTitle) {
154         this.m_title.setText(sTitle);
155     }
156
157     /**
158      * @param arg0
159      */

160     private TitleBar(boolean arg0) {
161         super(arg0);
162     }
163
164     /**
165      * @param arg0
166      */

167     private TitleBar(LayoutManager JavaDoc arg0) {
168         super(arg0);
169     }
170
171     /**
172      * @param arg0
173      * @param arg1
174      */

175     private TitleBar(LayoutManager JavaDoc arg0, boolean arg1) {
176         super(arg0, arg1);
177     }
178
179     /* (non-Javadoc)
180      * @see com.simulacramedia.contentmanager.context.ContextListener#contextMessage(com.simulacramedia.contentmanager.context.ContextEvent)
181      */

182     public void contextMessage(ContextEvent ce) {
183         if(ce.CONTEXT_TYPE==ContextType.CONTEXT_DIRS) {
184             VirtualFile vfDir = ce.getVFS().getVirtualFile(ce.getPath()).getResource();
185             m_sDisplayName = vfDir.getVFS().getVirtualFileSystemView().getDisplayName(vfDir);
186             m_sFileName = vfDir.getVFS().getVirtualFileSystemView().getLogicalFileName(vfDir);
187             
188             String JavaDoc sValue = ConfigStore.getInstance().getPropertyValue("FILENAME_DISPLAY");
189             if(sValue!=null && sValue.length()>0 && sValue.equals("FILENAME") ) {
190                 this.setTitle(m_sFileName);
191             } else {
192                 this.setTitle(m_sDisplayName);
193             }
194             
195             this.m_OrderServerButton.setVisible(vfDir.isOrderableDirectory());
196             this.m_orderChooser.setVisible(true);
197             if(!ce.getPath().startsWith(HarmonisePaths.PATH_USERS)) {
198                 this.m_displayChooser.setVisible(true);
199             }
200         } else if(ce.CONTEXT_TYPE==ContextType.CONTEXT_TABS) {
201             this.setTitle("");
202             this.m_orderChooser.setVisible(false);
203             this.m_OrderServerButton.setVisible(false);
204             this.m_displayChooser.setVisible(false);
205         } else if(ce.CONTEXT_TYPE==ContextType.CONTEXT_FILENAME_DISPLAY) {
206             String JavaDoc sValue = ConfigStore.getInstance().getPropertyValue("FILENAME_DISPLAY");
207             if(sValue!=null && sValue.length()>0 && sValue.equals("FILENAME")) {
208                 this.m_displayChooser.setSelectedItem("Display resource filename");
209                 this.setTitle( this.m_sFileName );
210             } else if(sValue!=null && sValue.length()>0 && sValue.equals("ID")) {
211                 this.m_displayChooser.setSelectedItem("Display resource harmonise id");
212                 this.setTitle( this.m_sFileName );
213             } else {
214                 this.m_displayChooser.setSelectedItem("Display resource title");
215                 this.setTitle( this.m_sDisplayName );
216             }
217             this.revalidate();
218             this.repaint();
219         }
220     }
221
222     /**
223      * Returns table view.
224      *
225      * @return Table view
226      */

227     public TableView getTable() {
228         return m_table;
229     }
230
231     /**
232      * Sets the table view.
233      *
234      * @param view Table view
235      */

236     public void setTable(TableView view) {
237         m_table = view;
238         if(m_table.getOrderType().equals(TableView.ORDER_DATE)) {
239             this.m_orderChooser.setSelectedItem("View by date");
240         } else if(m_table.getOrderType().equals(TableView.ORDER_NAME)) {
241             this.m_orderChooser.setSelectedItem("View by name");
242         } else if(m_table.getOrderType().equals(TableView.ORDER_SERVER)) {
243             this.m_orderChooser.setSelectedItem("View by default order");
244         }
245     }
246
247     /* (non-Javadoc)
248      * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
249      */

250     public void actionPerformed(ActionEvent JavaDoc ae) {
251         if(ae.getActionCommand().equals("ORDER")) {
252             JFrame JavaDoc frame = new JFrame JavaDoc();
253             frame.setIconImage( ((ImageIcon JavaDoc)IconManager.getInstance().getIcon("32-sim-logo.gif")).getImage() );
254         
255             ContextEvent ce = ContextHandler.getInstance().getLastEvent(ContextType.CONTEXT_DIRS);
256             VirtualFile vfDir = ce.getVFS().getVirtualFile(ce.getPath()).getResource();
257         
258             OrderDialog dialog = new OrderDialog(frame, "Set Default order", vfDir);
259             dialog.show();
260             if(dialog.isOrderChanged()) {
261                 this.m_orderChooser.setSelectedItem("View by default order");
262                 this.m_table.setOrderType(TableView.ORDER_SERVER);
263             }
264         } else if(ae.getActionCommand().equals("ORDER_CHOOSER")) {
265             if(this.m_orderChooser.getSelectedItem().equals("View by name")) {
266                 this.m_table.setOrderType(TableView.ORDER_NAME);
267             } else if(this.m_orderChooser.getSelectedItem().equals("View by date")) {
268                 this.m_table.setOrderType(TableView.ORDER_DATE);
269             } else if(this.m_orderChooser.getSelectedItem().equals("View by default order")) {
270                 this.m_table.setOrderType(TableView.ORDER_SERVER);
271             }
272         } else if (ae.getActionCommand().equals("DISPLAY_CHOOSER")) {
273             if(this.m_displayChooser.getSelectedItem().equals("Display resource filename")) {
274                 ConfigStore.getInstance().setProperty("FILENAME_DISPLAY", "FILENAME");
275             } else if(this.m_displayChooser.getSelectedItem().equals("Display resource harmonise id")) {
276                 ConfigStore.getInstance().setProperty("FILENAME_DISPLAY", "ID");
277             } else {
278                 ConfigStore.getInstance().setProperty("FILENAME_DISPLAY", "DISPLAYNAME");
279             }
280             ContextEvent ce = new ContextEvent(ContextType.CONTEXT_FILENAME_DISPLAY);
281             ContextHandler.getInstance().fireContextEvent(ce);
282         }
283     }
284
285 }
286
Popular Tags