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 }