1 19 package org.openharmonise.him.editors.report; 20 21 import java.awt.*; 22 import java.awt.event.*; 23 import java.util.*; 24 import java.util.List ; 25 26 import javax.swing.*; 27 import javax.swing.tree.*; 28 29 import org.openharmonise.him.*; 30 import org.openharmonise.him.editors.report.rqom.*; 31 import org.openharmonise.him.editors.report.swing.*; 32 import org.openharmonise.him.harmonise.*; 33 import org.openharmonise.vfs.*; 34 import org.openharmonise.vfs.servers.ServerList; 35 36 37 42 public class AttributePanel extends JPanel implements LayoutManager, ActionListener { 43 44 private ReportQuery m_reportQuery; 45 private JComboTree m_propertyCombo; 46 private JLabel m_propLabel; 47 private String m_sLabelText; 48 private List m_metadataList; 49 50 51 54 public AttributePanel(ReportQuery query, List list, String label) { 55 super(); 56 this.m_metadataList = list; 57 this.m_reportQuery = query; 58 this.m_sLabelText = label; 59 this.setup(); 60 } 61 62 66 private void setup() { 67 this.setLayout(this); 68 69 AbstractVirtualFileSystem vfs = ServerList.getInstance().getHarmoniseServer().getVFS(); 70 71 this.m_propertyCombo = new JComboTree(); 72 this.m_propertyCombo.setResourceTreeFilter(new ReportResourceFilter(m_reportQuery)); 73 this.m_propertyCombo.setActionCommand("PROPCOMBO"); 74 this.m_propertyCombo.addActionListener(this); 75 this.m_propertyCombo.setAllowClear(false); 76 this.m_propertyCombo.setShowLeafNodes(true); 77 this.m_propertyCombo.setSelectedLeafOnly(true); 78 this.m_propertyCombo.setSelectionMode(TreeSelectionModel.CONTIGUOUS_TREE_SELECTION); 79 this.m_propertyCombo.addCollectionPath(HarmonisePaths.PATH_SYSTEM_PROPS); 80 this.m_propertyCombo.addCollectionPath(HarmonisePaths.PATH_PROPERTIES); 81 this.add(m_propertyCombo); 82 83 if(this.m_metadataList.size()>0) { 84 Iterator iter = m_metadataList.iterator(); 85 ArrayList paths = new ArrayList(); 86 while(iter.hasNext()){ 87 Metadata metadata = (Metadata)iter.next(); 88 paths.add(metadata.getPath()); 89 } 90 this.m_propertyCombo.setPaths(vfs, paths); 91 } 92 93 String fontName = "Dialog"; 94 int fontSize = 11; 95 Font font = new Font(fontName, Font.PLAIN, fontSize); 96 97 if(m_sLabelText!=null && m_sLabelText.length()>0){ 98 this.m_propLabel = new JLabel(m_sLabelText); 99 this.m_propLabel.setFont(font); 100 this.add(this.m_propLabel); 101 } 102 } 103 108 public List getMetadataList() { 109 return this.m_metadataList; 110 } 111 112 115 public void removeLayoutComponent(Component comp) { 116 } 117 118 121 public void layoutContainer(Container parent) { 122 int x = 0; 123 int y = 0; 124 if(m_propLabel!=null){ 125 this.m_propLabel.setSize(this.m_propLabel.getPreferredSize()); 126 this.m_propLabel.setLocation(x, y); 127 y += 15; 128 } 129 130 this.m_propertyCombo.setSize(this.m_propertyCombo.getPreferredSize()); 131 this.m_propertyCombo.setLocation(x, y); 132 } 133 134 137 public void addLayoutComponent(String name, Component comp) { 138 } 139 public Dimension getPreferredSize() { 140 return new Dimension(220, 20); 141 142 } 143 144 147 public Dimension minimumLayoutSize(Container parent) { 148 return this.getPreferredSize(); 149 } 150 151 154 public Dimension preferredLayoutSize(Container parent) { 155 return this.getPreferredSize(); 156 } 157 158 161 public void actionPerformed(ActionEvent e) { 162 if(e.getActionCommand().equals("PROPCOMBO")) { 163 this.m_metadataList = new ArrayList(); 164 m_reportQuery.clearDisplayAttributes(); 165 Iterator iter = this.m_propertyCombo.getPaths().iterator(); 166 while(iter.hasNext()){ 167 String path = (String )iter.next(); 168 Metadata metadata = new Metadata(path, this.m_reportQuery); 169 m_metadataList.add(metadata); 170 this.m_reportQuery.addDisplayAttributes(metadata); 171 } 172 this.layoutContainer(null); 173 this.validateTree(); 174 this.repaint(); 175 } 176 } 177 178 } | Popular Tags |