1 7 package org.openharmonise.him.displaycomponents.table.title; 8 9 import java.awt.Color ; 10 import java.awt.Dimension ; 11 import java.awt.FlowLayout ; 12 import java.awt.Font ; 13 import java.awt.LayoutManager ; 14 import java.awt.event.ActionEvent ; 15 import java.awt.event.ActionListener ; 16 17 import javax.swing.ImageIcon ; 18 import javax.swing.JButton ; 19 import javax.swing.JComboBox ; 20 import javax.swing.JFrame ; 21 import javax.swing.JLabel ; 22 import javax.swing.JPanel ; 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 43 public class TitleBar extends JPanel implements ActionListener , ContextListener { 44 45 48 private TableView m_table = null; 49 50 53 private Color m_selectedColor = new Color (173,169,143); 54 55 58 private JLabel m_title = new JLabel (); 59 60 63 private String m_sDisplayName = ""; 64 65 68 private String m_sFileName = ""; 69 70 73 private JComboBox m_orderChooser = new JComboBox (new String []{"View by name", "View by date", "View by default order"}); 74 75 78 private JButton m_OrderServerButton = new JButton ("Set Default order"); 79 80 83 private JComboBox m_displayChooser = new JComboBox (new String []{"Display resource filename", "Display resource title" , "Display resource harmonise id"}); 84 85 88 public TitleBar() { 89 super(); 90 this.setup(); 91 } 92 93 97 private void setup() { 98 FlowLayout fl = new FlowLayout (FlowLayout.LEFT); 99 fl.setVgap(3); 100 fl.setHgap(10); 101 this.setLayout(fl); 102 103 108 this.m_title.setFont( FontManager.getInstance().getFont(FontManager.FONT_RESOURCE_TITLE_BOLD) ); 109 this.m_title.setPreferredSize(new Dimension (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 (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 (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 (150, 20)); 131 this.m_displayChooser.setVisible(false); 132 this.add(this.m_displayChooser); 133 String 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 153 public void setTitle(String sTitle) { 154 this.m_title.setText(sTitle); 155 } 156 157 160 private TitleBar(boolean arg0) { 161 super(arg0); 162 } 163 164 167 private TitleBar(LayoutManager arg0) { 168 super(arg0); 169 } 170 171 175 private TitleBar(LayoutManager arg0, boolean arg1) { 176 super(arg0, arg1); 177 } 178 179 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 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 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 227 public TableView getTable() { 228 return m_table; 229 } 230 231 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 250 public void actionPerformed(ActionEvent ae) { 251 if(ae.getActionCommand().equals("ORDER")) { 252 JFrame frame = new JFrame (); 253 frame.setIconImage( ((ImageIcon )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 |