1 /*
2 * Copyright (c) 2003-2008 by Cosylab d. d.
3 *
4 * This file is part of CosyBeans-Common.
5 *
6 * CosyBeans-Common is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
10 *
11 * CosyBeans-Common is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with CosyBeans-Common. If not, see <http://www.gnu.org/licenses/>.
18 */
19
20 package com.cosylab.gui.components.introspection;
21
22 import java.lang.reflect.Member;
23
24 import javax.swing.DefaultListModel;
25 import javax.swing.JComboBox;
26 import javax.swing.JList;
27 import javax.swing.JPanel;
28
29 import com.cosylab.introspection.ClassIntrospector;
30 import com.cosylab.introspection.MemberFilter;
31
32 /**
33 * Creation date: (11.1.2002 23:50:39)
34 *
35 * @author <a href="mailto:miha.kadunc@cosylab.com">Miha Kadunc</a>
36 * @version $id$
37 */
38 public class MethodSelectionPanel extends JPanel {
39
40 /**
41 *
42 * @author Miha Kadunc (miha.kadunc@cosylab.com)
43 * @version @@VERSION@@
44 */
45 class IvjEventHandler implements java.awt.event.ActionListener, java.beans.PropertyChangeListener, javax.swing.event.ListSelectionListener {
46 /**
47 * @param e java.awt.event.ActionEvent
48 * @see java.awt.event.ActionListener#actionPerformed(ActionEvent)
49 */
50 public void actionPerformed(java.awt.event.ActionEvent e) {
51 if (e.getSource() == MethodSelectionPanel.this.getJComboBox1())
52 connEtoC2(e);
53 };
54 /**
55 * @param evt java.beans.PropertyChangeEvent
56 * @see java.beans.PropertyChangeListener#propertyChange(PropertyChangeEvent)
57 */
58 public void propertyChange(java.beans.PropertyChangeEvent evt) {
59 if (evt.getSource() == MethodSelectionPanel.this && (evt.getPropertyName().equals("background")))
60 connPtoP1SetTarget();
61 if (evt.getSource() == MethodSelectionPanel.this.getJComboBox1() && (evt.getPropertyName().equals("background")))
62 connPtoP1SetSource();
63 };
64 /**
65 * @param e javax.swing.event.ListSelectionEvent
66 * @see javax.swing.event.ListSelectionListener#valueChanged(ListSelectionEvent)
67 */
68 public void valueChanged(javax.swing.event.ListSelectionEvent e) {
69 if (e.getSource() == MethodSelectionPanel.this.getJList1())
70 connEtoC1(e);
71 };
72 }
73 private boolean ivjConnPtoP1Aligning = false;
74 /**
75 */
76 IvjEventHandler ivjEventHandler = new IvjEventHandler();
77 private JComboBox ivjJComboBox1 = null;
78 private JList ivjJList1 = null;
79 private java.lang.Class fieldInspectedClass = null;
80 private Member fieldSelectedMember = null;
81 /**
82 */
83 public final static short MODE_COMBO = 0;
84 /**
85 */
86 public final static short MODE_LIST = 1;
87 private short fieldMode = (short) 0;
88 private MemberFilter fieldMemberFilter = null;
89 /**
90 * MethodSelectionPanel constructor comment.
91 */
92 public MethodSelectionPanel() {
93 super();
94 initialize();
95 }
96 /**
97 * MethodSelectionPanel constructor comment.
98 * @param layout java.awt.LayoutManager
99 */
100 public MethodSelectionPanel(java.awt.LayoutManager layout) {
101 super(layout);
102 }
103 /**
104 * MethodSelectionPanel constructor comment.
105 * @param layout java.awt.LayoutManager
106 * @param isDoubleBuffered boolean
107 */
108 public MethodSelectionPanel(java.awt.LayoutManager layout, boolean isDoubleBuffered) {
109 super(layout, isDoubleBuffered);
110 }
111 /**
112 * MethodSelectionPanel constructor comment.
113 * @param isDoubleBuffered boolean
114 */
115 public MethodSelectionPanel(boolean isDoubleBuffered) {
116 super(isDoubleBuffered);
117 }
118 /**
119 * connEtoC1: (JList1.listSelection.valueChanged(javax.swing.event.ListSelectionEvent) --> MethodSelectionPanel.setSelectedMember(Ljava.lang.reflect.Member;)V)
120 * @param arg1 javax.swing.event.ListSelectionEvent
121 */
122 /* WARNING: THIS METHOD WILL BE REGENERATED. */
123 private void connEtoC1(javax.swing.event.ListSelectionEvent arg1) {
124 try {
125 // user code begin {1}
126 // user code end
127 this.setSelectedMember((java.lang.reflect.Member)getJList1().getSelectedValue());
128 // user code begin {2}
129 // user code end
130 } catch (java.lang.Throwable ivjExc) {
131 // user code begin {3}
132 // user code end
133 handleException(ivjExc);
134 }
135 }
136 /**
137 * connEtoC2: (JComboBox1.action.actionPerformed(java.awt.event.ActionEvent) --> MethodSelectionPanel.setSelectedMember(Ljava.lang.reflect.Member;)V)
138 * @param arg1 java.awt.event.ActionEvent
139 */
140 /* WARNING: THIS METHOD WILL BE REGENERATED. */
141 private void connEtoC2(java.awt.event.ActionEvent arg1) {
142 try {
143 // user code begin {1}
144 // user code end
145 this.setSelectedMember((java.lang.reflect.Member)getJComboBox1().getSelectedItem());
146 // user code begin {2}
147 // user code end
148 } catch (java.lang.Throwable ivjExc) {
149 // user code begin {3}
150 // user code end
151 handleException(ivjExc);
152 }
153 }
154 /**
155 * connPtoP1SetSource: (MethodSelectionPanel.background <--> JComboBox1.background)
156 */
157 /* WARNING: THIS METHOD WILL BE REGENERATED. */
158 private void connPtoP1SetSource() {
159 /* Set the source from the target */
160 try {
161 if (ivjConnPtoP1Aligning == false) {
162 // user code begin {1}
163 // user code end
164 ivjConnPtoP1Aligning = true;
165 this.setBackground(getJComboBox1().getBackground());
166 // user code begin {2}
167 // user code end
168 ivjConnPtoP1Aligning = false;
169 }
170 } catch (java.lang.Throwable ivjExc) {
171 ivjConnPtoP1Aligning = false;
172 // user code begin {3}
173 // user code end
174 handleException(ivjExc);
175 }
176 }
177 /**
178 * connPtoP1SetTarget: (MethodSelectionPanel.background <--> JComboBox1.background)
179 */
180 /* WARNING: THIS METHOD WILL BE REGENERATED. */
181 private void connPtoP1SetTarget() {
182 /* Set the target from the source */
183 try {
184 if (ivjConnPtoP1Aligning == false) {
185 // user code begin {1}
186 // user code end
187 ivjConnPtoP1Aligning = true;
188 getJComboBox1().setBackground(this.getBackground());
189 // user code begin {2}
190 // user code end
191 ivjConnPtoP1Aligning = false;
192 }
193 } catch (java.lang.Throwable ivjExc) {
194 ivjConnPtoP1Aligning = false;
195 // user code begin {3}
196 // user code end
197 handleException(ivjExc);
198 }
199 }
200 /**
201 *
202 */
203 /* WARNING: THIS METHOD WILL BE REGENERATED. */
204 private static void getBuilderData() {
205 /*V1.1
206 **start of data**
207 D0CB838494G88G88GC999ADACGGGGGGGGGGGG8CGGGE2F5E9ECE4E5F2A0E4E1F4E14DBBEDF0945711780E90DD05CBF0193AD230FCC7304E219262124B4AD9F1280B38A3B1892A9CC9F0A5BF3818BB4BE7F2678F6ECC6A648B659A2DA4748912039098CBD89FAB310BD60B3EC0D89220AF0C844288CB86B921EC0D34A3E94DEAE73DBB12D6E29DDD776BF933334B6C2E9C5FD5C5D54D6C6BFE9F5D7D7AF5776B990452375667E41ACA85A1B3C7D07F5AB285A13DC590DAAD5B1E673854376A8B
208 855DDF95406B423F7932613983E8E96F55971688D6A98F5A69506E0376D178FDD830CBA34D70A342BAB6206DFDA4479CFD1D05F93ECEAEEBF7D595417390409E4095D556970ED6627A23D547D4FCA3348F293F91B2CD02D0D205FDFEE8BD2643A7287D52611981104C7A782A4AD57AA834310F871EAB2B28EF82BC7399F7DFE8BF27763BFD7F86E15F0F66CC87F1AD5D7C9C762BE3AB2B5527709AD3C416F0F334831E1DC3F726AECC48B3768959376092476DD333CE3B6890BD0A6475591D6EC9F9FC56575EFECD
209 D226E547306412A694276C9E925D12CBD8D30DBC3FEC4DE373814F50AE2FC15C54A95453CEE83FG10DD43797E4941CE152F35F7B6883B9FF6C664FB2C0678DDD99364FB7AAFFF1055EA46799358BE60382DC05F8FC03C24D7F1DE7CE64E4B735558B7895A5BGF6EB78C7EB901F0173555697DAEAB90F67CFF29EC76FBEA6E40CFF55D49C01472EDA62ED3AB648E35C1694539B4CD6F296F03F9301368DE09700D0D7DFD889508570A633515479D3706C9ED7FA651999595D6D7174389C5EEB32C3F2416F76F620
210 2838772489596B90843243FDD61B81BF9CC66BC2ED9001E43BA5F03B59745EC6C1D13EE24AB110AD79E93F49254E3122AEA85B56BA545BB3ECEF5743EF9C077BC7781798BE6FE490CFFBB54370583681AD7EA4577368A14E4BE0F602D0527420A957001778FFD8E34A36908F6516A0AF2463E796D1477D00F7G84G5682A4836C34F09D9778DBE269F8408D566E96DD4333639E512B744CBADD8E492B6AFAC3D5B4DD9B810DCB7A4C63C8AF9BDB74FB346B71F506FA5935F14934D755C71EB52897DA7BD7915736
211 D86F350DC35A9E7E1E1D09CEAB6DE116061798FED007273DFD111DADEC5F86DAAAG752FB6A35EFC0A7A97EA73B4B2FC1F8ECF73A43379316DG5AB6G5A5F38G7AC3DBFDFDE1BF4098009FA09EA099E0DBBD5F63777D2717F90E06F47BCBE38FAD1441D372ABDEF1406DD3C47704F4D374BA45F117649354BEC797D02F63A1634A59791E00B5AECBEE49AB12DF740AB3923ACE6AD33B70BA7671CA0CBA621C11E001990F4067EDD8B88CCF1768D35E77B8C4C58A76A07A19853409B971A64C8893406FE3B654D7
212 61A974F3FBC07EEC9B57D56A27083B8DED454675123470DBF8DE856316DC6D6DFDCE663CC56F82375167CE218CF150FFA7C0E5836CA1408ABB7CBE4D4F69CB235C9E7B8EFEDD30BD7DD5C3FBE4316CB459567E536176380F2DE3EE04788C60GD889108830351147D65F29B15DDC488B73BFF6E3FB65102A76C37E593853467D63D4BA2D75651035F255E761B24EA7BEF3546741887D3254A76D0BFD89EDBB9D64941AC02FCDFCEF7EE32112EC36C774C95CCA2FFB4140A4C7F027286F1EC50CC1521C64D67AA40F
213 64F6408F1FEAA3AFAF66876DF7D256EC6B578C0F7E2C978C4C2761FF3378BA61E18E7DE960742C3BC89795456B9C1FD524E1C9D11C6E296078423B480BAF44D57AD4D99B8514759C48B884B026497AB7F78F6B6CF0D0166F4CFAC670042976ACD4236DAA50FFF59337873186F32FA42DFD07350374D72AC7E36CD7AC4039237B70221A4F3BC6D6949A2DE1B1C3F2AAF03F1A236273B57AD9C65F813CE6207DB403AF8470B4F3BDBC49F8B49A7FF9788E6571E7EC0D7079E31D1765825948C30148B61E98B03671EF
214 840CEDBCA9905D06D382C6B6CC346F85D0C6F95E2DBB93DB8368C7A7E4371B72DFED08C03974CBA3A807536DD4EEB99DD312B26CDC1440B7B533D848FCF5BC7C5E544CFD6AFC8D772966450705540F9443BCAC7EEF9FB0E537100D9EEB897AD462697B1F62D9030CFC869455AB4F3A9542EFE7F1C0457B32986E61CFAE60D84B95080F63F20F6CEF320D0B93F7263CB04CD1595950F02152A84357F532B6527E9F961EE92039E28C20D98D978C4E352E798162EB5069D31AECAE78D71B50BEA73AE6255EE951BDA5
215 B9AC9F0BF3225F6E1B07ED34B39B318F6ABBDFC21435B222A0BEC96DABB92EC9B3631257B208B35ADDB03B5DABCDA249CE148E6BCDEB134A5F4E5FA5B37E7E74B834095E29A6B61B4A19CF9DFC93F932B6937F3FBB3BB6FC5FBDDE59A3F91585E25B9E5AE4C25847A5516D338F05D07E0F59EFA17EF2DAD338FE7F54B854A9B8489AD77200A24DD8DBA966CDE432188767F390405142E35E65BFA01D47BCB530774AAE15A920253420FFB8D5DF2ABB7301962AAB9C5268B7E3507FAC04AE3492FD901EC44F32990D
216 9F53680F5B0C46AB9A3D35A1527AA4E76BD2897AD26913D989D2E78C6AD72585B57F6DD87AED980D192716D777AEE18CF1697281421F950CFDDB2700B9409DED7EAE61000079B14DC93EB8C944B9BDDE678C24CF186028751723557A7ACB9C4807351ACD70CC8520315F7E88E5B5B29F4B991C630E1957E7FE51CA394ADEF8661D216789D45FD96C57D64B7BA9C0DB8D30698C2D17F106F4371575FBCD6B3762AC4577783354FFA3BC6D5AFCE7AC3CDFC99B2DE7E9B31A6FD52D5FF49B6589AB547EEB5AE83E0DED
217 586F6DD33CCEF2DA438DB15C17C021B73279DD74DA093E4E64702DB60CD388AF34919F423970BBFA3C89672D84FC63B9FEB61E947479E0374FA7CFB85995C95DFFE726BE06914E1DD9G4FC927578777F5076467B624E4A22FF807D2512A9DAC79D15E70BB61A507D3113DBC5D6E1D6F55E27ACD27B44F657E749DFD1DEAF371FD264288F2772972BAF4F21B3724180807EF561FDF868F4CF30D483DF0156C0723904E12DAE77BCEBD5F3344F33C5E55EE6338DD9A6E5FB5DC695B5C2EDFE135C7D66B5305297676
218 AB4C36E95CFDAC87477E03EF739A5937EA719C2E04F682C0B2G5D575732FBBC6601E9004BEE2FAFA4FF7E9BB36ED1B052F39F6528537B104EF6BABB0EF61E8F7DD7F717CACBFBB4C1C849DDE3D8F31B7EFA02495FCEFADE5F9E5477262BCFE5258290EFE30CE714E3AF7431F4F0BFE6AB5673B056C1BC2C6C603CBFD50BBCFC5EGCF7A5E75061D793D4F92F1386DEDB82C57C567523821AE620ADD26788E52C1EAC7D097FBFE591F359F00F4F1320E57E70ABA616E5D49E55DF7927DA8C6B8EA17DB8EB2FEF5A9
219 04407989FC4079D9117628F06C707D916B2101CE62A331D3D7B32CC84E7A85G717321056F4DBE68E3BB4F79793E85CB75A2A91D9EC312F7D2764E28FA370B730A2A74EE1D36F97D285A4A65F4401C895A3CFFE18D1573B156CF9F45553AE8335E4F256EDE91514F6DBCCF326DB99F6E674CB9F8FE32AF54979E3B407D5C4B192F6B7C5CFB30AAEC3D8BF52B5EF9CC489744B3357DB5366E1C2AFF1AD7BC00F6EB03B97B8146G7CG715A9A162C18754DCB7EA8754D3F2F7FACF54A148B7C5EF951361CF1E99702
220 F7EC9A77723246F1582D2D372ABAFC5CBE5D5CF9976F3D4BD34D310A1D01720BD4F34C5170B606EF546149169E577CC79F50B6DE646B2FB3C7633B288B629B40C8D7383C9B230EC370F70572CEBEE44A057BEB6033F9BA2A4605876B385FDE5345EB01CF64E29E308D5A69G7B810EF55797F6820C82843A396D7833FAE259CEB73FC40F485A4F5E700BB017F532B6DC56355D2132B50649CA6314FB4659435AC95DC6BA5AEEBDEA2CA3744C2AFEA60A39FE36F5F37D346523FE049E08F3G2DGC3G8A409A0064
221 9E2E1F6DD9C671BB74ECC58A5E413A9A49784049D8F6E02C1B2F459C3733A7F41CEA8385A8638BC04B6B2DAF2C846884988388G2C6F65B21E480EE983DAD9FBB9B660307CF1B6603DE7DC388D24749A0D33C4FD9796F93D33B1476D68B5526B2F8BD96D9DE8991A8E835998BF391F9F121DEEC560BE5E1A03F794596B1CF23AB94E4EF09332179519541C77C0647A176700F17DEB6E00F17DABF0A0FA0DF76501C875B12A47BE4DF24D3C3E7AC2B3G61EE323C729C3407B45C01865EEFDA43BD447248G3457E8
222 38C5B36212211D56477D69C9663776C2BB6F9247B5B3DC1EFAE7A25CF7EA2355E0F17CF2E3892E930E23B5FE9AF50DE8B55CF048B140D530B9AA1750D77964D96F8455AA2E4FC9DE2F53A13D8BE7CB6D733CF2C4B028B3329EFC1EE75DB80F82C90D245CBB8F65B9BFB1672B738CA972D013A6677ABA3479F283BD30F3E200A7FB59129B59B637659A5B660FF38FEA72065B5F533947B4DA5011E0BE06C2D01FDF3271A4E778786758F822C59A7FD2AE5E59461D8E27D72D38107EFED8D64C4E064FA779187E7AC4
223 C5D47576D0AD575BA5C56E8D6AED3AB81A2F68833D0D06690EF8684E0F2C377EFCE33D3D1B9FD9EF6F6747565B07791175A66547561BBBBF12EFA09D7D68E4A1372DC92FBC8356255AC8C1949BA908E0A385D1EC24E099B6D29045C68A16E1A38561B6C2B2BEE8515BC133A67BC756D0591B55357E076510FEED6D57D8FBC160F90A54FDA8F8E65D8EB5C0D05D658566EB5BE081C96BDFF68B571FF1D2CF54BD652C73B64CCDDD17026F61E90E8A6607BBG5120711ADC0DB146A5AE483330561ECB58EF3BD6838B
224 C0FBAD40E6009D1768AECCEBBFB60FB2CEC24407ED9F76C8934256F7F06C7DE66D9BA7E87781B8GD682A43E436FDB2F36637DBFD8B0653C1CFE9BF921CAB50FB1CFB0DFDFF499E24CE59EA7FEFE1A4709C68D37D44CF1ABB45C17D80C59816D744BBCCEFCEA433BDE46E5DE23F8251AFFA3D4548F7C76F3791A46B0AF52F2C63CD93637DF86875AA3CE8DB2EDD15E58D113270E8F7473FA0813FD27108C6DB40074FEDE3F705771FA5126C7920441956B8C3FEB5ABDF21FE9FF3FFAEF9C885E9F15ADA9A6DA7389
225 B3DF73B650578EA06EB9333EEE41EBF6189B917DE82D1E0EE7579AC29F8821A33F7F1829275F8D2167684613EC5BEB39EC7B37FFC3F0FDBBAE62B7DB3BD41904AB7474349D97123E7703AC32019F5721DDA9326C9AF1FAC6409788672E60B7F7F3D88A94122E30EF08CE77994C4BA1D3883E67C4884018B5GC7D43E932F50394854667B2BE2BEDF4615FBE31BFEAED6A3398AF972D51A0FFD63F2B5B89F4930219AEDED4E69F3E22DFA64AA2B4BD573BD6B02B61D47842A411984610B820FA12F5EF3FF0D85B4AE
226 37660F9B57751947110F69E0353DF81D6C046FE378C49D1E4E19DC434FD99250CA87799D4BD10A7E428F6D35G1BG368224838857F85E7C67C50DC20C3B47086C99042062522531A45F6618776AF0A0FB5E124B6DB97949C4A1E5D5FF445AEE69B53219D67519F776B84313FC7FFD8465F3GED85C0A240E6009DGFBB479369759C8BEAC794255C91C18E695EDAE9C96F803E8F4364463BF7DDEDF0FAAD967B1E5C660F1BF676D5D20BFF90B2D8DB8017F6D3DF8AFCED04FDF850A216A66DF0A38EE4A3F791050
227 7773FED3CD04F5BB5575D66B569DFBF1D5B679312734BB77D620AF0F1F3D97091FAF22FA557336239A671894DD3EE0BDF27D3CDEB7678AD6C52C556DD7F9AB39CE4FDD53475533514D3E7B255FD7F43FE7BF77779E314F65177FDF57A03B1BA90D1C0BA925463958E22971DDF2C5E974EFA962CAA3FFCB7115D27D3794F4EE7E7AB8461BFE589387C09CC082C052F5FEE6AA0ED48B6C4C981C17CB0EA94C8571ABBD052FAF14C516B537AC7637FDA5E56C1D052CA8728C4E4F71E5E538DF0A6CE1C8423DD906BA02
228 2B7C34C2DDD5FCD5995A31CB1AE4E812733BC8D2690F15554273267831619B20AB1006DC9F7F98B25091F1CA5353FF16E36CCA833D6C81A89A02BC89609C40900083408F309AA091E0B3408E00F4008C003C9B1033GB45E60FA9DBFE60D4483A0558408A957ABD27D026CB5AD646E5387730D5E08FE67A67EEF1DE0BA013EF19A8FE9EF54C761013F4FA7AC3D0520F10F9C0F3C475FBA9EFB0F7F6EB8FB1F88FBB33260D1F37F6F9EE7F51949C91F2459D26A71928DB7609B12FDCE3C9490AD27A2B28FC59531F9
229 B8D2E1ECE7EFD65CEBE7159546F6D6D72137B34255D760991B027D9B557AB5EA388FB45C99B6A762EEB99D4A34066FE0FCA13EDF4285353BAB63EB1E61C6D55CBBBA5C87AA6EEA856A91C41E1635DA56D085666213CE170B5AA32C0F538DEA5574718163516991F5FCFF286110EF4A751FE531E4638D4ABB88370761D2D59C0D3DFD62105ECF29AF3108B6F122D4206F331C224B3948DEB58FC3C777945D89C476AEC025B375903E5CFFB008676A91687F172C72AE42F3530BC20EA29453FB3ECA31F206FDBB6073
230 8A455AEB2B81A6766E3916762CE79F061CB0FBC0B8C0E6B0A0E463DE8E88B9EC2B8704ACB083BFFE9E9C72677BC478838BF05921C071503A240F0799DF180A988FCB06695C1A07435FDD7D33027A9C83FCE0181F558625A10A4F9A1E91DDAEC5F45D69F6BB50FF75ACA8D2B0A67C2B02737BF89F15C834DFA94877473AB17F8BD0CB87883546D2AFCE92GG8CB4GGD0CB818294G94G88G88GC999ADAC3546D2AFCE92GG8CB4GG8CGGGGGGGGGGGGGGGGGE2F5E9ECE4E5F2A0E4E1
231 F4E1D0CB8586GGGG81G81GBAGGG0892GGGG
232 **end of data**/
233 }
234 /**
235 * Gets the inspectedClass property (java.lang.Class) value.
236 * @return The inspectedClass property value.
237 * @see #setInspectedClass
238 */
239 public java.lang.Class getInspectedClass() {
240 return fieldInspectedClass;
241 }
242 /**
243 * Return the JComboBox1 property value.
244 * @return javax.swing.JComboBox
245 */
246 /* WARNING: THIS METHOD WILL BE REGENERATED. */
247 private javax.swing.JComboBox getJComboBox1() {
248 if (ivjJComboBox1 == null) {
249 try {
250 ivjJComboBox1 = new javax.swing.JComboBox();
251 ivjJComboBox1.setName("JComboBox1");
252 ivjJComboBox1.setToolTipText("Select a method");
253 // user code begin {1}
254 // user code end
255 } catch (java.lang.Throwable ivjExc) {
256 // user code begin {2}
257 // user code end
258 handleException(ivjExc);
259 }
260 }
261 return ivjJComboBox1;
262 }
263 /**
264 * Return the JList1 property value.
265 * @return javax.swing.JList
266 */
267 /* WARNING: THIS METHOD WILL BE REGENERATED. */
268 private javax.swing.JList getJList1() {
269 if (ivjJList1 == null) {
270 try {
271 ivjJList1 = new javax.swing.JList();
272 ivjJList1.setName("JList1");
273 ivjJList1.setVisible(false);
274 // user code begin {1}
275 // user code end
276 } catch (java.lang.Throwable ivjExc) {
277 // user code begin {2}
278 // user code end
279 handleException(ivjExc);
280 }
281 }
282 return ivjJList1;
283 }
284 /**
285 * Gets the memberFilter property (com.cosylab.gui.adapters.infobus.MemberFilter) value.
286 * @return The memberFilter property value.
287 * @see #setMemberFilter
288 */
289 public MemberFilter getMemberFilter() {
290 return fieldMemberFilter;
291 }
292 /**
293 * Creation date: (13.1.2002 3:18:41)
294 * @return short
295 */
296 public short getMode() {
297 return fieldMode;
298 }
299 /**
300 * Gets the selectedMethod property (java.lang.reflect.Method) value.
301 * @return The selectedMethod property value.
302 * @see #setSelectedMember
303 */
304 public Member getSelectedMember() {
305 return fieldSelectedMember;
306 }
307 /**
308 * Called whenever the part throws an exception.
309 * @param exception java.lang.Throwable
310 */
311 private void handleException(java.lang.Throwable exception) {
312
313 /* Uncomment the following lines to print uncaught exceptions to stdout */
314 System.out.println("--------- UNCAUGHT EXCEPTION ---------");
315 exception.printStackTrace(System.out);
316 }
317 /**
318 * Initializes connections
319 * @exception java.lang.Exception The exception description.
320 */
321 /* WARNING: THIS METHOD WILL BE REGENERATED. */
322 private void initConnections() throws java.lang.Exception {
323 // user code begin {1}
324 // user code end
325 this.addPropertyChangeListener(ivjEventHandler);
326 getJComboBox1().addPropertyChangeListener(ivjEventHandler);
327 getJList1().addListSelectionListener(ivjEventHandler);
328 getJComboBox1().addActionListener(ivjEventHandler);
329 connPtoP1SetTarget();
330 }
331 /**
332 * Initialize the class.
333 */
334 /* WARNING: THIS METHOD WILL BE REGENERATED. */
335 private void initialize() {
336 try {
337 // user code begin {1}
338 // user code end
339 setName("MethodSelectionPanel");
340 setLayout(new java.awt.GridBagLayout());
341 setSize(225, 23);
342
343 java.awt.GridBagConstraints constraintsJComboBox1 = new java.awt.GridBagConstraints();
344 constraintsJComboBox1.gridx = 0; constraintsJComboBox1.gridy = 0;
345 constraintsJComboBox1.fill = java.awt.GridBagConstraints.HORIZONTAL;
346 constraintsJComboBox1.weightx = 1.0;
347 add(getJComboBox1(), constraintsJComboBox1);
348
349 java.awt.GridBagConstraints constraintsJList1 = new java.awt.GridBagConstraints();
350 constraintsJList1.gridx = 0; constraintsJList1.gridy = 1;
351 constraintsJList1.fill = java.awt.GridBagConstraints.BOTH;
352 constraintsJList1.weightx = 1.0;
353 constraintsJList1.weighty = 1.0;
354 constraintsJList1.insets = new java.awt.Insets(4, 4, 4, 4);
355 add(getJList1(), constraintsJList1);
356 initConnections();
357 } catch (java.lang.Throwable ivjExc) {
358 handleException(ivjExc);
359 }
360 // user code begin {2}
361 // user code end
362 }
363 /**
364 * Creation date: (12.1.2002 0:59:43)
365 * @return java.lang.reflect.Member[]
366 */
367 private void initializeModels() {
368 Member[] members=internalGetMembers();
369 if (fieldMode==MODE_COMBO){
370 getJComboBox1().setModel(new javax.swing.DefaultComboBoxModel(members));
371 getJComboBox1().setRenderer(new MemberListCellRenderer(true,true));
372 }
373 else if (fieldMode==MODE_LIST) {
374 DefaultListModel model=new javax.swing.DefaultListModel();
375 for (int i = 0; i < members.length; i++){
376 model.addElement(members[i]);
377 }
378 // model.copyInto(members);
379 getJList1().setModel(model);
380 getJList1().setCellRenderer(new MemberListCellRenderer(true,true));
381 }
382 }
383 /**
384 * Creation date: (12.1.2002 0:59:43)
385 * @return java.lang.reflect.Member[]
386 */
387 private Member[] internalGetMembers() {
388 if (fieldInspectedClass == null)
389 return new Member[0];
390
391 Member[] members = ClassIntrospector.getMembers(fieldInspectedClass,fieldMemberFilter);
392 return members;
393 }
394 /**
395 * main entrypoint - starts the part when it is run as an application
396 * @param args java.lang.String[]
397 */
398 public static void main(java.lang.String[] args) {
399 try {
400 javax.swing.JFrame frame = new javax.swing.JFrame();
401 MethodSelectionPanel aMethodSelectionPanel;
402 aMethodSelectionPanel = new MethodSelectionPanel();
403 frame.setContentPane(aMethodSelectionPanel);
404 frame.setSize(aMethodSelectionPanel.getSize());
405 frame.addWindowListener(new java.awt.event.WindowAdapter() {
406 public void windowClosing(java.awt.event.WindowEvent e) {
407 System.exit(0);
408 };
409 });
410 frame.setVisible(true);
411 java.awt.Insets insets = frame.getInsets();
412 frame.setSize(frame.getWidth() + insets.left + insets.right, frame.getHeight() + insets.top + insets.bottom);
413 frame.setVisible(true);
414 aMethodSelectionPanel.setInspectedClass(Double.class);
415 } catch (Throwable exception) {
416 System.err.println("Exception occurred in main() of javax.swing.JPanel");
417 exception.printStackTrace(System.out);
418 }
419 }
420 /**
421 * Sets the inspectedClass property (java.lang.Class) value.
422 * @param inspectedClass The new value for the property.
423 * @see #getInspectedClass
424 */
425 public void setInspectedClass(java.lang.Class inspectedClass) {
426 if (fieldInspectedClass != inspectedClass){
427 fieldInspectedClass = inspectedClass;
428 initializeModels();
429 }
430 }
431 /**
432 * Sets the memberFilter property (com.cosylab.gui.adapters.infobus.MemberFilter) value.
433 * @param memberFilter The new value for the property.
434 * @see #getMemberFilter
435 */
436 public void setMemberFilter(MemberFilter memberFilter) {
437 fieldMemberFilter = memberFilter;
438 }
439 /**
440 * Creation date: (13.1.2002 3:18:41)
441 * @param newMode short
442 */
443 public void setMode(short newMode) {
444 if (fieldMode != newMode) {
445 fieldMode = newMode;
446 getJComboBox1().setVisible(!getJComboBox1().isVisible());
447 getJList1().setVisible(!getJList1().isVisible());
448 initializeModels();
449 return;
450 }
451 }
452 /**
453 * Sets the requiredType property (java.lang.Class) value.
454 * @param requiredType The new value for the property.
455 * @see #getRequiredType
456 */
457 private void setSelectedMember(Member selectedMember) {
458 if (selectedMember != fieldSelectedMember) {
459 Member oldMember=fieldSelectedMember;
460 fieldSelectedMember = selectedMember;
461 firePropertyChange("selectedMember",oldMember,fieldSelectedMember);
462 }
463 }
464 }