1 package sellwin.gui; 2 3 import sellwin.domain.*; 4 import sellwin.server.*; 5 import sellwin.utils.*; 6 7 import java.util.*; 8 import java.util.ArrayList ; 9 import java.rmi.*; 10 11 import javax.swing.*; 12 13 17 22 public class Whiteboard { 23 private MainWindow parent; 24 private Login login=null; 25 private String speed = null; 26 private String dataDir = null; 27 private ResourceBundle langBundle; 28 private SellwinSession remIF = null; 29 private UserGroup currentGroup = null; 30 private TreeMap custNamesList = null; 31 private ArrayList opportunityNames = null; 32 private ArrayList roleList = null; 33 private TreeMap salesPersons = null; 34 private ArrayList taxList = null; 35 private TreeMap allGroups = null; 36 private ArrayList allGroupsForUser = null; 37 private ArrayList opportunities = new ArrayList (); 38 private boolean loggedOn = false; 39 private SalesPerson currentUser = null; 40 private Opportunity currentOpportunity = null; 41 private Customer cust = new Customer(); 42 private ArrayList oppIndex; 43 private Properties props; 44 45 49 public Whiteboard(MainWindow p) { 50 try { 51 parent = p; 52 setProps(Prefs.getApplProps()); 53 String lang = (String )(props.getProperty(Prefs.DEF_LANG)); 54 setLang(lang); 55 } catch (Exception e) { 56 ErrorHandler.show(MainWindow.getMainParent(), e); 57 } 58 } 59 60 61 65 public final void setProps(Properties p) { 66 props = p; 67 } 68 69 73 public final Properties getProps() { 74 return props; 75 } 76 77 83 public final void setSpeed(String s) { 84 this.speed = s; 85 } 86 87 93 public final String getSpeed() { return speed; } 94 95 103 public final void setRemIF(SellwinSession r) { 104 remIF = r; 105 } 106 107 111 public final SellwinSession getRemIF() { 112 return remIF; 113 } 114 115 121 public final Opportunity getCurrentOpportunity() { 122 return currentOpportunity; 123 } 124 125 129 public final void setCurrentOpportunity(Opportunity o) { 130 currentOpportunity = o; 131 } 132 133 139 public final void addCustName(String name) 140 throws AngError { 141 142 if (custNamesList == null) 143 custNamesList = getAllCustNames(true); 144 custNamesList.put(name, name); 145 146 OppPanel oppPanel = MainWindow.getOppPanel(); 148 if (oppPanel != null) 149 oppPanel.updateCustomerList(); 150 } 151 152 153 159 public final TreeMap getAllCustNames(boolean refresh) 160 throws AngError { 161 162 if ((custNamesList == null) || (refresh)) { 163 try { 164 custNamesList = new TreeMap(); 165 Object [] values = getRemIF().getAllCustomerNames(); 166 for (int i=0;i<values.length;i++) 167 custNamesList.put((String )values[i], (String )values[i]); 168 } catch (RemoteException e) { 169 throw new AngError(e.getMessage()); 170 } 171 } 172 173 return custNamesList; 174 } 175 176 181 public final ArrayList getAllUserRoles() 182 throws AngError { 183 184 if (roleList == null) { 185 try { 186 roleList = getRemIF().getAllUserRoles(null); 187 } catch (RemoteException e) { 188 throw new AngError(e.getMessage()); 189 } 190 } 191 192 return roleList; 193 } 194 195 202 public final TreeMap getGroupMembers(String groupName) 203 throws AngError { 204 205 TreeMap members=null; 206 try { 207 Object [] values = getRemIF().getUsersInGroup(groupName); 208 members = new TreeMap(); 209 SalesPerson sp; 210 for (int i=0;i<values.length;i++) { 211 sp = (SalesPerson)values[i]; 212 members.put(sp.getID(), sp); 213 } 214 } catch (RemoteException r) { 215 throw new AngError(r.getMessage()); 216 } 217 return members; 218 } 219 220 226 public final void deleteUserInGroup(UserGroup group, SalesPerson user) 227 throws AngError { 228 229 try { 230 getRemIF().deleteUserInGroup(group, user.getPK()); 231 } catch (RemoteException r) { 232 throw new AngError(r.getMessage()); 233 } 234 } 235 236 241 public final UserGroup getCurrentGroup() { 242 return currentGroup; 243 } 244 245 250 public final void setCurrentGroup(UserGroup g) { 251 currentGroup = g; 252 } 253 254 261 public final TreeMap getUsersInGroup(String groupName) 262 throws AngError { 263 264 try { 265 Object [] values = getRemIF().getUsersInGroup(groupName); 266 TreeMap userNames = new TreeMap(); 267 SalesPerson sp; 268 for (int i=0;i<values.length;i++) { 269 sp = (SalesPerson)values[i]; 270 userNames.put(sp.getID(), sp); 271 } 272 return userNames; 273 } catch (RemoteException e) { 274 throw new AngError(e.getMessage()); 275 } 276 } 277 278 283 public final TreeMap getAllGroups() 284 throws AngError { 285 286 try { 287 Object [] values = getRemIF().getUserGroups(null); 288 allGroups = new TreeMap(); 289 UserGroup ug; 290 for (int i=0;i<values.length;i++) { 291 ug = (UserGroup)values[i]; 292 allGroups.put(ug.getName(), ug); 293 } 294 } catch (RemoteException e) { 295 throw new AngError(e.getMessage()); 296 } 297 return allGroups; 298 } 299 300 306 public final ArrayList getGroupsForUser() 307 throws AngError { 308 309 if (allGroupsForUser != null) 310 return allGroupsForUser; 311 312 try { 313 allGroupsForUser = getRemIF().getGroupsForUser(currentUser.getPK()); 314 } catch (RemoteException e) { 315 throw new AngError(e.getMessage()); 316 } 317 return allGroupsForUser; 318 } 319 320 325 public final TreeMap getUserGroups() 326 throws AngError { 327 328 try { 329 Object [] values = getRemIF().getUserGroups(null); 330 TreeMap map = new TreeMap(); 331 UserGroup ug; 332 for (int i=0;i<values.length;i++) { 333 ug = (UserGroup)values[i]; 334 map.put(ug.getName(), ug); 335 } 336 return map; 337 } catch (RemoteException r) { 338 throw new AngError(r.getMessage()); 339 } 340 } 341 342 348 public final void addUserToGroup(SalesPerson user, UserGroup group) 349 throws AngError { 350 351 try { 352 if (user.getPK() == currentUser.getPK()) { 354 if (allGroupsForUser == null) 355 allGroupsForUser = new ArrayList (); 356 allGroupsForUser.add(group); 357 } 358 359 group.setModifiedBy(currentUser.getID()); 360 getRemIF().addUserToGroup(user.getPK(), group); 361 user.addUserGroup(group); 362 } catch (RemoteException r) { 363 throw new AngError(r.getMessage()); 364 } 365 } 366 367 372 public final void addUserGroup(UserGroup group) 373 throws AngError { 374 375 try { 376 group.setModifiedBy(currentUser.getID()); 377 getRemIF().addUserGroup(group); allGroups.put(group.getName(), group); } catch (RemoteException r) { 380 throw new AngError(r.getMessage()); 381 } 382 } 383 384 389 public final void deleteUserGroup(String groupName) 390 throws AngError { 391 392 try { 393 getRemIF().deleteUserGroup(groupName); 394 } catch (RemoteException r) { 395 throw new AngError(r.getMessage()); 396 } 397 } 398 399 400 405 public final void setOpportunities(ArrayList o) { 406 opportunities = o; 407 } 408 409 417 public final ArrayList getOpportunityIndex() 418 throws AngError { 419 420 ArrayList oppIndex = null; 421 try { 422 oppIndex = getRemIF().getOpportunityIndex(getCurrentUser()); 423 } catch (RemoteException r) { 424 throw new AngError(r.getMessage()); 425 } 426 return oppIndex; 427 } 428 429 435 public final Opportunity getOpportunityByName(String name) 436 throws AngError { 437 438 Opportunity opp=null; 439 440 for (int i=0;i<opportunities.size();i++) { 442 opp = (Opportunity)opportunities.get(i); 443 if (opp.getName().equals(name)) 444 return opp; 445 } 446 447 if (oppIndex == null) { 449 try { 450 oppIndex = getRemIF().getOpportunityIndex(getCurrentUser()); 451 } catch (RemoteException r) { 452 throw new AngError(r.getMessage()); 453 } 454 } 455 456 long pk=-1; 457 OppIndex oi = null; 458 for (int k=0;k<oppIndex.size();k++) { 459 oi = (OppIndex)oppIndex.get(k); 460 if (oi.getName().equals(name)) 461 pk = oi.getPK(); 462 } 463 464 if (pk == -1) 465 throw new AngError("getOppByName lookup failed [name]="+name); 466 try { 467 opp = getRemIF().getOpportunity(pk); 468 } catch (RemoteException r) { 469 throw new AngError(r.getMessage()); 470 } 471 if (opp == null) 472 throw new AngError("getOppByName opp not found [name]="+name); 473 return opp; 474 } 475 476 481 public final ArrayList getAlarms() 482 throws AngError { 483 484 try { 485 488 ArrayList acts; 489 if ((getRemIF() != null) && (getCurrentUser() != null)) { 490 acts = getRemIF().getAlarms(getCurrentUser().getPK()); 491 System.out.println("Whiteboard acts="+ acts.size()); 492 } else 493 acts = new ArrayList (); 494 return acts; 495 } catch (RemoteException r) { 496 r.printStackTrace(); 497 throw new AngError(r.getMessage()); 498 } 499 } 500 501 509 public final long addActivity(long oppPK, Activity a) 510 throws AngError { 511 512 try { 513 a.setModifiedBy(currentUser.getID()); 514 return getRemIF().addActivity(oppPK, a); 515 } catch (RemoteException r) { 516 r.printStackTrace(); 517 throw new AngError(r.getMessage()); 518 } 519 } 520 521 529 public final void deleteActivity(long oppPK, long actPK) 530 throws AngError { 531 532 try { 533 getRemIF().deleteActivity(oppPK, actPK); 534 } catch (RemoteException r) { 535 r.printStackTrace(); 536 throw new AngError(r.getMessage()); 537 } 538 } 539 540 547 public final void updateActivity(long oppPK, Activity a) 548 throws AngError { 549 550 try { 551 a.setModifiedBy(currentUser.getID()); 552 getRemIF().updateActivity(oppPK, a); 553 } catch (RemoteException r) { 554 r.printStackTrace(); 555 throw new AngError(r.getMessage()); 556 } 557 } 558 559 564 public final void updateOpportunity(Opportunity o) 565 throws AngError { 566 567 try { 568 o.setModifiedBy(currentUser.getID()); 569 getRemIF().updateOpportunity(o); 570 } catch (RemoteException r) { 571 r.printStackTrace(); 572 throw new AngError(r.getMessage()); 573 } 574 } 575 576 581 public final ArrayList getOpportunityNames() 582 throws AngError { 583 584 try { 585 opportunityNames = getRemIF().getOpportunityNames(getCurrentUser()); 586 } catch (RemoteException r) { 587 throw new AngError(r.getMessage()); 588 } 589 return opportunityNames; 590 } 591 592 593 597 public final ArrayList getOpportunities() { 598 return opportunities; 599 } 600 601 605 public final boolean isLoggedOn() { 606 return loggedOn; 607 } 608 609 613 public final void setLoggedOn(boolean t) { 614 loggedOn = t; 615 } 616 617 621 public final void setCustomer(Customer c) { 622 cust = c; 623 } 624 625 629 public final Customer getCustomer() { 630 return cust; 631 } 632 633 639 public final Customer getCustomer(String custName) 640 throws AngError { 641 642 try { 643 return getRemIF().getCustomer(custName); 644 } catch (RemoteException r) { 645 throw new AngError(r.getMessage()); 646 } 647 } 648 649 655 public final long addCustomer(Customer c) 656 throws AngError { 657 658 try { 659 c.setModifiedBy(currentUser.getID()); 660 return getRemIF().addCustomer(c); 661 } catch (RemoteException r) { 662 throw new AngError(r.getMessage()); 663 } 664 } 665 666 671 public final void deleteSalesPerson(SalesPerson person) 672 throws AngError { 673 674 try { 675 getRemIF().deleteSalesPerson(person); Object sp = salesPersons.remove(person.getID()); if (sp == null) 678 throw new AngError("sp pk not found"); 679 } catch (RemoteException r) { 680 throw new AngError(r.getMessage()); 681 } 682 } 683 684 689 public final void addSalesPerson(SalesPerson s) 690 throws AngError { 691 692 try { 693 s.setModifiedBy(currentUser.getID()); 694 System.out.println(s.getModifiedBy() + " is the modified value in whiteboard"); 695 s.setPK(getRemIF().addSalesPerson(s)); salesPersons.put(s.getID(), s); } catch (RemoteException r) { 698 throw new AngError(r.getMessage()); 699 } 700 } 701 702 709 719 725 public final long addOpportunity(Opportunity o) 726 throws AngError { 727 728 try { 729 o.setModifiedBy(currentUser.getID()); 730 long pk = getRemIF().addOpportunity(o); 731 o.setPK(pk); 732 opportunities.add(o); 733 return pk; 734 } catch (RemoteException r) { 735 throw new AngError(r.getMessage()); 736 } 737 } 738 739 744 public final void deleteOpportunity(long pk) 745 throws AngError { 746 try { 747 getRemIF().deleteOpportunity(pk); 748 Opportunity opp = null; 749 for (int i = 0;i<opportunities.size();i++) { 750 opp = (Opportunity)opportunities.get(i); 751 if (opp.getPK() == pk) 752 opportunities.remove(i); 753 } 754 } catch (RemoteException r) { 755 throw new AngError(r.getMessage()); 756 } 757 } 758 759 764 public final TreeMap getSalesPersons() 765 throws AngError { 766 767 try { 768 769 Object [] values = getRemIF().getSalesPersons(null); 770 salesPersons = new TreeMap(); 771 SalesPerson sp; 772 for (int i=0;i<values.length;i++) { 773 sp = (SalesPerson)values[i]; 774 salesPersons.put(sp.getID(), sp); 775 } 776 777 return salesPersons; 778 } catch (RemoteException r) { 779 throw new AngError(r.getMessage()); 780 } 781 } 782 783 788 public final ArrayList getSalesPersonNames() 789 throws AngError { 790 791 try { 792 return getRemIF().getSalesPersonNames(); 793 } catch (RemoteException r) { 794 throw new AngError(r.getMessage()); 795 } 796 } 797 798 803 public final void updateSalesPerson(SalesPerson u) 804 throws AngError { 805 806 try { 807 u.setModifiedBy(currentUser.getID()); 808 getRemIF().updateSalesPerson(u); 810 if (salesPersons == null) 811 salesPersons = getSalesPersons(); 812 813 Object sp = salesPersons.remove(u.getID()); 814 if (sp == null) 815 throw new AngError("sp not found in memory"); 816 salesPersons.put(u.getID(), u); 817 } catch (RemoteException r) { 818 r.printStackTrace(); 819 throw new AngError(r.getMessage()); 820 } 821 } 822 823 828 public final void setCurrentLogin(Login l) { 829 System.out.println("setting current login to " + l.getSalesPerson().getID()); 830 setCurrentUser(l.getSalesPerson()); 831 login = l; 832 } 833 834 838 public final Login getLogin() 839 throws AngError { 840 841 if (login == null) 842 throw new AngError("User not logged in. Please log in."); 843 return login; 844 } 845 846 850 public final void setCurrentUser(SalesPerson s) { 851 currentUser = s; 852 } 853 854 858 public final SalesPerson getCurrentUser() { 859 return currentUser; 860 } 861 862 869 public final void deleteForecast(long oppPK, long forePK) 870 throws AngError { 871 872 try { 873 getRemIF().deleteForecast(oppPK, forePK); 874 } catch (RemoteException r) { 875 throw new AngError(r.getMessage()); 876 } 877 } 878 879 886 public final void deleteQuote(long oppPK, long quotePK) 887 throws AngError { 888 try { 889 getRemIF().deleteQuote(oppPK, quotePK); 890 } catch (RemoteException r) { 891 throw new AngError(r.getMessage()); 892 } 893 } 894 895 900 public final void updateQuote(Quote q) 901 throws AngError { 902 try { 903 Opportunity opp = getCurrentOpportunity(); 904 q.setModifiedBy(currentUser.getID()); 905 getRemIF().updateQuote(opp.getPK(), q); 906 } catch (RemoteException r) { 907 throw new AngError(r.getMessage()); 908 } 909 } 910 917 public final long addQuote(long oppPK, Quote q) 918 throws AngError { 919 try { 920 q.setModifiedBy(currentUser.getID()); 921 return getRemIF().addQuote(oppPK, q); 922 } catch (RemoteException r) { 923 throw new AngError(r.getMessage()); 924 } 925 } 926 927 928 935 public final void deleteQuoteLine(long oppPK, long quotePK, long linePK) 936 throws AngError { 937 938 try { 939 getRemIF().deleteQuoteLine(oppPK, quotePK, linePK); 940 } catch (RemoteException r) { 941 throw new AngError(r.getMessage()); 942 } 943 } 944 945 953 public final long addQuoteLine(long oppPK, long quotePK, QuoteLine q) 954 throws AngError { 955 956 try { 957 q.setModifiedBy(getCurrentUser().getID()); 958 return getRemIF().addQuoteLine(oppPK, quotePK, q); 959 } catch (RemoteException r) { 960 throw new AngError(r.getMessage()); 961 } 962 } 963 964 969 public final void deleteContact(long pk) 970 throws AngError { 971 972 Opportunity opp = getCurrentOpportunity(); 973 try { 974 getRemIF().deleteContact(opp.getPK(), pk); 975 } catch (RemoteException e) { 976 throw new AngError(e.getMessage()); 977 } 978 } 979 980 986 public final long addContact(Contact c) 987 throws AngError { 988 989 Opportunity opp = getCurrentOpportunity(); 990 try { 991 c.setModifiedBy(currentUser.getID()); 992 return getRemIF().addContact(opp.getPK(), c); 993 } catch (RemoteException e) { 994 throw new AngError(e.getMessage()); 995 } 996 } 997 998 1003 public final void updateContact(Contact c) 1004 throws AngError { 1005 1006 Opportunity opp = getCurrentOpportunity(); 1007 try { 1008 c.setModifiedBy(currentUser.getID()); 1009 getRemIF().updateContact(opp.getPK(), c); 1010 } catch (RemoteException e) { 1011 throw new AngError(e.getMessage()); 1012 } 1013 } 1014 1015 1021 public final void addForecast(long oppPK, Forecast f) 1022 throws AngError { 1023 1024 try { 1025 f.setModifiedBy(currentUser.getID()); 1026 long pk = getRemIF().addForecast(oppPK, f); 1027 f.setPK(pk); 1028 getCurrentOpportunity().addForecast(f); 1029 } catch (RemoteException r) { 1030 throw new AngError(r.getMessage()); 1031 } 1032 } 1033 1034 1039 public final void updateForecast(Forecast f) 1040 throws AngError { 1041 1042 try { 1043 long oppPK = getCurrentOpportunity().getPK(); 1044 f.setModifiedBy(currentUser.getID()); 1045 getRemIF().updateForecast(oppPK, f); 1046 } catch (RemoteException r) { 1047 throw new AngError(r.getMessage()); 1048 } 1049 } 1050 1051 1056 public final void updateOrder(Order o) 1057 throws AngError { 1058 try { 1059 long oppPK = getCurrentOpportunity().getPK(); 1060 o.setModifiedBy(currentUser.getID()); 1061 getRemIF().updateOrder(oppPK, o); 1062 } catch (RemoteException r) { 1063 throw new AngError(r.getMessage()); 1064 } 1065 } 1066 1067 1073 public final long addOrder(Order o) 1074 throws AngError { 1075 try { 1076 o.setModifiedBy(getCurrentUser().getID()); 1077 long oppPK = getCurrentOpportunity().getPK(); 1078 return getRemIF().addOrder(oppPK, o); 1079 } catch (RemoteException r) { 1080 throw new AngError(r.getMessage()); 1081 } 1082 } 1083 1084 1089 public final void updateCustomer(Customer c) 1090 throws AngError { 1091 1092 try { 1093 c.setModifiedBy(currentUser.getID()); 1094 getRemIF().updateCustomer(c); 1095 } catch (RemoteException r) { 1096 throw new AngError(r.getMessage()); 1097 } 1098 } 1099 1100 1105 public final void deleteCustomer(String custName) 1106 throws AngError { 1107 1108 try { 1109 getRemIF().deleteCustomer(custName); 1110 } catch (RemoteException r) { 1111 throw new AngError(r.getMessage()); 1112 } 1113 } 1114 1115 1121 public final void updateLead(long campPK, Lead l) 1122 throws AngError { 1123 try { 1124 l.setModifiedBy(currentUser.getID()); 1125 getRemIF().updateLead(campPK, l); 1126 } catch (RemoteException r) { 1127 throw new AngError(r.getMessage()); 1128 } 1129 } 1130 1131 1136 public final ArrayList getCampaigns() 1137 throws AngError { 1138 1139 ArrayList camps = null; 1140 try { 1141 camps = getRemIF().getCampaigns(null); 1142 } catch (RemoteException e) { 1143 throw new AngError(e.getMessage()); 1144 } 1145 return camps; 1146 } 1147 1148 1154 public final ArrayList getCampaignLeads(long campPK) 1155 throws AngError { 1156 1157 ArrayList leads = null; 1158 1159 try { 1160 leads = getRemIF().getCampaignLeads(campPK); 1161 } catch (RemoteException e) { 1162 throw new AngError(e.getMessage()); 1163 } 1164 return leads; 1165 } 1166 1167 1175 public final Product getProduct(String group, String line, String name) 1176 throws AngError { 1177 1178 Product prod = null; 1179 1180 try { 1181 prod = getRemIF().getProduct(group, line, name); 1182 } catch (RemoteException e) { 1183 throw new AngError(e.getMessage()); 1184 } 1185 return prod; 1186 } 1187 1188 1195 public final ArrayList getProductsForLine(String group, String line) 1196 throws AngError { 1197 1198 try { 1199 return getRemIF().getProductsForLine(group, line); 1200 } catch (RemoteException e) { 1201 throw new AngError(e.getMessage()); 1202 } 1203 1204 } 1205 1206 1211 public final ArrayList getProductMatrix() 1212 throws AngError { 1213 1214 try { 1215 return getRemIF().getProductMatrix(); 1216 } catch (RemoteException e) { 1217 throw new AngError(e.getMessage()); 1218 } 1219 } 1220 1221 1226 public final ResourceBundle getLang() { 1227 return langBundle; 1228 } 1229 1230 1235 public final void setLang(String lang) { 1236 try { 1237 1238 if (lang.equals("French")) { 1239 System.out.println("French selected"); 1240 langBundle = ResourceBundle.getBundle("French", new Locale("fr", "FR")); 1241 } 1242 else 1243 if (lang.equals("German")) { 1244 System.out.println("German selected"); 1245 langBundle = ResourceBundle.getBundle("German", new Locale("de", "DE")); 1246 } 1247 else 1248 if (lang.equals("Spanish")) { 1249 System.out.println("Spanish selected"); 1250 langBundle = ResourceBundle.getBundle("Spanish", new Locale("es", "MX")); 1251 } 1252 else { 1253 System.out.println("English selected"); 1255 langBundle = ResourceBundle.getBundle("English", new Locale("en", "US")); 1256 } 1257 } catch (MissingResourceException e) { 1258 ErrorHandler.show(MainWindow.getMainParent(), e); 1259 } 1260 } 1261 1262 1268 public final ArrayList getStateTax(boolean refresh) 1269 throws AngError { 1270 1271 if ((taxList == null) || (refresh)) { 1272 try { 1273 taxList = getRemIF().getStateTax(null); 1274 } catch (RemoteException e) { 1275 throw new AngError(e.getMessage()); 1276 } 1277 } 1278 1279 return taxList; 1280 } 1281 1282 1288 public final long addCustomerInventory(CustomerInventory c) 1289 throws AngError { 1290 1291 try { 1292 c.setModifiedBy(currentUser.getID()); 1293 return getRemIF().addCustomerInventory(c); 1294 } catch (RemoteException r) { 1295 throw new AngError(r.getMessage()); 1296 } 1297 } 1298 1299 1304 public final void deleteCustomerInventory(CustomerInventory ci) 1305 throws AngError { 1306 1307 try { 1308 getRemIF().deleteCustomerInventory(ci); 1309 } catch (RemoteException r) { 1310 throw new AngError(r.getMessage()); 1311 } 1312 } 1313 1314 1319 public final ArrayList getCustomerInventory() 1320 throws AngError { 1321 1322 try { 1323 return getRemIF().getCustomerInventory(getCurrentOpportunity().getCustomer().getPK()); 1324 } catch (RemoteException r) { 1325 throw new AngError(r.getMessage()); 1326 } 1327 } 1328 1329 1333 public final MainWindow getMainWindow() { 1334 return parent; 1335 } 1336 1337} 1338 | Popular Tags |