1 4 package com.tc; 5 6 import org.dijon.ButtonGroup; 7 import org.dijon.CheckBox; 8 import org.dijon.Component; 9 import org.dijon.Container; 10 import org.dijon.ContainerResource; 11 import org.dijon.Label; 12 import org.dijon.List; 13 import org.dijon.ListModel; 14 import org.dijon.RadioButton; 15 16 import java.awt.Insets ; 17 import java.awt.event.ActionEvent ; 18 import java.awt.event.ActionListener ; 19 20 public class InstrumentTypePanel extends Container { 21 private Label m_messageLabel; 22 private ButtonGroup m_buttonGroup; 23 private RadioButton m_classButton; 24 private RadioButton m_packageButton; 25 private CheckBox m_restartToggle; 26 private String m_className; 27 private String m_packageName; 28 private Container m_superTypesPanel; 29 private List m_superTypesList; 30 private Container m_superTypesStandin; 31 private Container m_bootTypesPanel; 32 private List m_bootTypesList; 33 private Container m_bootTypesStandin; 34 35 private static final String INCLUDE_ALL_PATTERN = "*..*"; 36 37 public InstrumentTypePanel(ContainerResource res) { 38 super(res); 39 } 40 41 public void load(ContainerResource res) { 42 super.load(res); 43 44 m_messageLabel = (Label)findComponent("MessageLabel"); 45 m_classButton = (RadioButton)findComponent("ClassButton"); 46 m_buttonGroup = (ButtonGroup)findComponent("ButtonGroup"); 47 m_packageButton = (RadioButton)findComponent("PackageButton"); 48 m_superTypesPanel = (Container)findComponent("SuperTypesPanel"); 49 m_superTypesStandin = new Container(); 50 m_superTypesList = (List)m_superTypesPanel.findComponent("SuperTypesList"); 51 m_bootTypesPanel = (Container)findComponent("BootTypesPanel"); 52 m_bootTypesStandin = new Container(); 53 m_bootTypesList = (List)m_bootTypesPanel.findComponent("BootTypesList"); 54 m_restartToggle = (CheckBox)findComponent("RestartToggle"); 55 56 m_buttonGroup.addActionListener(new ActionListener () { 57 public void actionPerformed(ActionEvent ae) { 58 if(m_superTypesPanel.getParent() != null) { 59 m_superTypesPanel.setEnabled(m_buttonGroup.getSelectedIndex() != 2); 60 } 61 } 62 }); 63 64 int buttonCount = m_buttonGroup.getChildCount(); 65 for(int i = 0; i < buttonCount; i++) { 66 Component comp = m_buttonGroup.getChildAt(i); 67 Insets margin = new Insets (0,0,0,0); 68 69 if(comp instanceof RadioButton) { 70 ((RadioButton)comp).setMargin(margin); 71 } 72 } 73 } 74 75 public void setup(String msg, 76 String className, 77 java.util.List bootTypes, 78 java.util.List superTypes) 79 { 80 m_messageLabel.setText(msg); 81 82 m_className = className; 83 m_packageName = className.substring(0, className.lastIndexOf('.')); 84 85 m_classButton.setText("Type '"+className+"'"); 86 m_packageButton.setText("All types in package '"+m_packageName+"'"); 87 m_buttonGroup.setSelected("ClassButton"); 88 89 if(superTypes.size() > 0) { 90 if(m_superTypesPanel.getParent() == null) { 91 replaceChild(m_superTypesStandin, m_superTypesPanel); 92 } 93 m_superTypesList.setModel(new ListModel(superTypes)); 94 } 95 else if(m_superTypesPanel.getParent() != null) { 96 replaceChild(m_superTypesPanel, m_superTypesStandin); 97 } 98 99 if(bootTypes.size() > 0) { 100 if(m_bootTypesPanel.getParent() == null) { 101 replaceChild(m_bootTypesStandin, m_bootTypesPanel); 102 } 103 m_bootTypesList.setModel(new ListModel(bootTypes)); 104 } 105 else if(m_bootTypesPanel.getParent() != null) { 106 replaceChild(m_bootTypesPanel, m_bootTypesStandin); 107 } 108 109 m_restartToggle.setSelected(true); 110 } 111 112 public boolean instrumentClass() { 113 return m_classButton.isSelected(); 114 } 115 116 public String getPattern() { 117 switch(m_buttonGroup.getSelectedIndex()) { 118 case 0: return m_className; 119 case 1: return m_packageName+".*"; 120 default: return INCLUDE_ALL_PATTERN; 121 } 122 } 123 124 public boolean includeAll() { 125 return getPattern().equals(INCLUDE_ALL_PATTERN); 126 } 127 128 public boolean restartSystem() { 129 return m_restartToggle.isSelected(); 130 } 131 } 132 | Popular Tags |