PageRenderTime 54ms CodeModel.GetById 16ms RepoModel.GetById 1ms app.codeStats 0ms

/src/mpv5/ui/frames/MPView.java

http://mp-rechnungs-und-kundenverwaltung.googlecode.com/
Java | 1483 lines | 1147 code | 131 blank | 205 comment | 78 complexity | 1b2ddcf14e1380209a87e3fa685012fe MD5 | raw file
Possible License(s): LGPL-3.0, Apache-2.0, GPL-3.0, GPL-2.0, AGPL-3.0, JSON, BSD-3-Clause
  1. /*
  2. * MPView.java
  3. */
  4. package mpv5.ui.frames;
  5. import com.l2fprod.common.swing.JOutlookBar;
  6. import enoa.connection.NoaConnection;
  7. import enoa.connection.NoaConnectionLocalServer;
  8. import java.awt.BorderLayout;
  9. import java.awt.Color;
  10. import java.awt.Component;
  11. import java.awt.Cursor;
  12. import java.awt.Dimension;
  13. import java.awt.Image;
  14. import java.awt.Toolkit;
  15. import java.awt.event.ActionEvent;
  16. import java.awt.event.ActionListener;
  17. import java.awt.event.ComponentAdapter;
  18. import java.awt.event.ComponentEvent;
  19. import java.awt.event.MouseAdapter;
  20. import java.awt.event.MouseEvent;
  21. import java.awt.event.MouseListener;
  22. import java.io.File;
  23. import java.net.URI;
  24. import java.util.ArrayList;
  25. import java.util.LinkedList;
  26. import java.util.List;
  27. import java.util.logging.Level;
  28. import java.util.logging.Logger;
  29. import javax.swing.ImageIcon;
  30. import javax.swing.JButton;
  31. import javax.swing.JComboBox;
  32. import javax.swing.JComponent;
  33. import javax.swing.JFrame;
  34. import javax.swing.JLabel;
  35. import javax.swing.JMenu;
  36. import javax.swing.JMenuItem;
  37. import javax.swing.JPopupMenu;
  38. import javax.swing.JProgressBar;
  39. import javax.swing.JScrollPane;
  40. import javax.swing.JTable;
  41. import javax.swing.JViewport;
  42. import javax.swing.SwingUtilities;
  43. import javax.swing.UIManager;
  44. import mpv5.Main;
  45. import mpv5.YabsView;
  46. import mpv5.YabsViewProxy;
  47. import mpv5.YabsViewProxy.FlowProvider;
  48. import mpv5.bugtracker.ExceptionHandler;
  49. import mpv5.bugtracker.SubmitForm;
  50. import mpv5.data.MPList;
  51. import mpv5.db.common.Context;
  52. import mpv5.db.common.DatabaseObject;
  53. import mpv5.db.common.NodataFoundException;
  54. import mpv5.db.common.QueryHandler;
  55. import mpv5.db.migration.MigrationWB;
  56. import mpv5.db.objects.Contact;
  57. import mpv5.db.objects.Favourite;
  58. import mpv5.db.objects.Item;
  59. import mpv5.db.objects.Product;
  60. import mpv5.db.objects.User;
  61. import mpv5.db.objects.ValueProperty;
  62. import mpv5.globals.Constants;
  63. import mpv5.globals.LocalSettings;
  64. import mpv5.globals.Messages;
  65. import mpv5.handler.Scheduler;
  66. import mpv5.logging.Log;
  67. import mpv5.pluginhandling.YabsPluginLoader;
  68. import mpv5.server.MPServer;
  69. import mpv5.ui.dialogs.About;
  70. import mpv5.ui.dialogs.BigPopup;
  71. import mpv5.ui.dialogs.DialogForFile;
  72. import mpv5.ui.dialogs.ListView;
  73. import mpv5.ui.dialogs.Popup;
  74. import mpv5.ui.dialogs.Search;
  75. import mpv5.ui.dialogs.Search2;
  76. import mpv5.ui.dialogs.Wizard;
  77. import mpv5.ui.dialogs.subcomponents.ControlPanel_MailTemplates;
  78. import mpv5.ui.dialogs.subcomponents.wizard_CSVImport2_1;
  79. import mpv5.ui.dialogs.subcomponents.wizard_MP45_Import;
  80. import mpv5.ui.dialogs.subcomponents.wizard_XMLImport_1;
  81. import mpv5.ui.dialogs.subcomponents.wizard_XMLImport_2;
  82. import mpv5.ui.dialogs.subcomponents.wizard_Yabs1_Import;
  83. import mpv5.ui.menus.ClipboardMenuItem;
  84. import mpv5.ui.menus.FavouritesMenuItem;
  85. import mpv5.ui.misc.CloseableTabbedPane;
  86. import mpv5.ui.misc.FadeOnChangeLabel;
  87. import mpv5.ui.misc.MPTable;
  88. import mpv5.ui.misc.Position;
  89. import mpv5.ui.panels.ActivityConfirmationPanel;
  90. import mpv5.ui.panels.ChangeNotApprovedException;
  91. import mpv5.ui.panels.ContactsList;
  92. import mpv5.ui.panels.ConversationPanel;
  93. import mpv5.ui.panels.DataPanel;
  94. import mpv5.ui.panels.ExpensePanel;
  95. import mpv5.ui.panels.GeneralListPanel;
  96. import mpv5.ui.panels.HistoryPanel;
  97. import mpv5.ui.panels.ItemPanel;
  98. import mpv5.ui.panels.JournalPanel;
  99. import mpv5.ui.panels.MPControlPanel;
  100. import mpv5.ui.panels.MassPrintPanel;
  101. import mpv5.ui.panels.ProductList;
  102. import mpv5.ui.panels.ProductListsPanel;
  103. import mpv5.ui.panels.ProductOrderPanel;
  104. import mpv5.ui.panels.ProductPanel;
  105. import mpv5.ui.panels.ProductsOverview;
  106. import mpv5.ui.panels.QueryPanel;
  107. import mpv5.ui.panels.RevenuePanel;
  108. import mpv5.ui.panels.StartPage;
  109. import mpv5.ui.panels.TrashPanel;
  110. import mpv5.usermanagement.MPSecurityManager;
  111. import mpv5.utils.export.Export;
  112. import mpv5.utils.export.VCFParser;
  113. import mpv5.utils.files.TextDatFile;
  114. import mpv5.utils.images.MPIcon;
  115. import mpv5.utils.renderer.ComboBoxRendererForTooltip;
  116. import mpv5.utils.xml.XMLWriter;
  117. import net.sf.vcard4j.java.VCard;
  118. import org.jdesktop.application.Application;
  119. import org.jdesktop.application.FrameView;
  120. import org.jdesktop.application.SingleFrameApplication;
  121. /**
  122. * The application's main frame.
  123. */
  124. public class MPView extends FrameView implements YabsView, FlowProvider {
  125. public static MPView identifierView;
  126. private static Dimension initialSize = new Dimension(1100, 900);
  127. public static JFrame identifierFrame;
  128. private static CloseableTabbedPane tabPane;
  129. private static JLabel messagelabel = new JLabel();
  130. private static JComboBox history = new JComboBox();
  131. private static JProgressBar progressbar = new JProgressBar();
  132. private static JMenu favMenu;
  133. private static String predefTitle;
  134. private static DialogForFile filedialog;
  135. public static SingleFrameApplication identifierApplication;
  136. private static boolean navBarAnimated = true;
  137. private static boolean tabPaneScrolled = false;
  138. private static JLabel staterrorlabel = new JLabel();
  139. private static MPList currentList = new MPList();
  140. private static ListView clistview = new ListView(currentList);
  141. private static JFrame clipboard = null;
  142. private static boolean loaded = false;
  143. /**
  144. * Display a message at the bottom of the MP frame
  145. *
  146. * @param message
  147. */
  148. public void addMessage(Object message, Color color) {
  149. addMessage(String.valueOf(message));
  150. }
  151. /**
  152. * Display a message at the bottom of the MP frame
  153. *
  154. * @param message
  155. */
  156. public void addMessage(Object message) {
  157. MPView.addMessage(String.valueOf(message), Color.GREEN);
  158. }
  159. /**
  160. * Display a message at the bottom of the MP frame
  161. *
  162. * @param message
  163. */
  164. public static synchronized void addMessage(final String message, final Color color) {
  165. if (loaded && messagelabel !=null) {//dont do anything if main frame is not constructed
  166. Runnable runnable = new Runnable() {
  167. public void run() {
  168. if (messagelabel instanceof FadeOnChangeLabel) {
  169. ((FadeOnChangeLabel) getMessagelabel()).setFadeColor(color);
  170. }
  171. messagelabel.setText(message);
  172. getHistory().addItem(message);
  173. getHistory().setSelectedItem(message);
  174. identifierFrame.validate();
  175. }
  176. };
  177. SwingUtilities.invokeLater(runnable);
  178. }
  179. }
  180. /**
  181. * Returns the currently selected tab on the main tab pane
  182. *
  183. * @return
  184. */
  185. public static Object getShowingTab() {
  186. return getTabPane().getSelectedComponent();
  187. }
  188. /**
  189. * Change the navigation bar behavior
  190. *
  191. * @param animated
  192. */
  193. public static void setNavBarAnimated(boolean animated) {
  194. navBarAnimated = animated;
  195. }
  196. /**
  197. * Change the main tabPane behavior
  198. *
  199. * @param scroll
  200. */
  201. public static void setTabPaneScrolled(boolean scroll) {
  202. tabPaneScrolled = scroll;
  203. }
  204. /**
  205. * Shows a file save dialog with the selcted file f. If the file's parent
  206. * directory is not the current directory, changes the current directory to
  207. * be the file's parent directory.
  208. *
  209. * @param f
  210. */
  211. public void showFilesaveDialogFor(File f) {
  212. getFiledialog().setSelectedFile(new File(f.getName()));
  213. getFiledialog().saveFile(f);
  214. }
  215. /**
  216. * Initialize and show the secondary JFrame. This method is intended for
  217. * showing "secondary" windows, like message dialogs, about boxes, and so
  218. * on.
  219. *
  220. * Unlike the mainFrame, dismissing a secondary window will not exit the
  221. * application. Session state is only automatically saved if the specified
  222. * JFrame has a name, and then only for component descendants that are
  223. * named. Throws an IllegalArgumentException if c is null
  224. *
  225. * @param c
  226. */
  227. public static void show(JFrame c) {
  228. Main.getApplication().show(c);
  229. }
  230. /**
  231. * The handler for all plugins
  232. */
  233. private static YabsPluginLoader pluginLoader;
  234. /**
  235. * Let the view notify the user about an unexpected error
  236. */
  237. public static void showError() {
  238. if (Main.INSTANTIATED) {
  239. try {
  240. getStaterrorlabel().setIcon(new javax.swing.ImageIcon(MPView.class.getResource("/mpv5/resources/images/16/remove.png"))); // NOI18N
  241. } catch (Exception e) {
  242. }
  243. }
  244. }
  245. /**
  246. * @return the tabPane
  247. */
  248. public static CloseableTabbedPane getTabPane() {
  249. return tabPane;
  250. }
  251. /**
  252. * @return the messagelabel
  253. */
  254. public static JLabel getMessagelabel() {
  255. return messagelabel;
  256. }
  257. /**
  258. * @return the progressbar
  259. */
  260. public JProgressBar getProgressbar() {
  261. return progressbar;
  262. }
  263. /**
  264. * @return the tabpanePanel
  265. */
  266. public static javax.swing.JPanel getTabpanePanel() {
  267. return tabpanePanel;
  268. }
  269. /**
  270. * @return the identifierView
  271. */
  272. public MPView getIdentifierView() {
  273. return identifierView;
  274. }
  275. /**
  276. * @return the initialSize
  277. */
  278. public static Dimension getInitialSize() {
  279. return initialSize;
  280. }
  281. /**
  282. * @return the identifierFrame
  283. */
  284. public JFrame getIdentifierFrame() {
  285. return identifierFrame;
  286. }
  287. /**
  288. * @return the history
  289. */
  290. public static JComboBox getHistory() {
  291. return history;
  292. }
  293. /**
  294. * @return the favMenu
  295. */
  296. public static JMenu getFavMenu() {
  297. return favMenu;
  298. }
  299. /**
  300. * @return the predefTitle
  301. */
  302. public static String getPredefTitle() {
  303. return predefTitle;
  304. }
  305. /**
  306. * @return the filedialog
  307. */
  308. public DialogForFile getFiledialog() {
  309. return filedialog;
  310. }
  311. /**
  312. * @return the identifierApplication
  313. */
  314. public Application getIdentifierApplication() {
  315. return identifierApplication;
  316. }
  317. /**
  318. * @return the navBarAnimated
  319. */
  320. public static boolean isNavBarAnimated() {
  321. return navBarAnimated;
  322. }
  323. /**
  324. * @return the tabPaneScrolled
  325. */
  326. public static boolean isTabPaneScrolled() {
  327. return tabPaneScrolled;
  328. }
  329. /**
  330. * @return the staterrorlabel
  331. */
  332. public static JLabel getStaterrorlabel() {
  333. return staterrorlabel;
  334. }
  335. /**
  336. * @return the currentList
  337. */
  338. public static MPList getCurrentList() {
  339. return currentList;
  340. }
  341. /**
  342. * @return the pluginLoader
  343. */
  344. public YabsPluginLoader getPluginLoader() {
  345. return pluginLoader;
  346. }
  347. /**
  348. * @param c
  349. * @return the clisttab
  350. */
  351. public static synchronized ContactsList getClisttab(Context c) {
  352. if (c.equals(Context.getCustomer())) {
  353. if (clisttabc == null) {
  354. clisttabc = new ContactsList(c);
  355. }
  356. return clisttabc;
  357. } else if (c.equals(Context.getSupplier())) {
  358. if (clisttabs == null) {
  359. clisttabs = new ContactsList(c);
  360. }
  361. return clisttabs;
  362. } else if (c.equals(Context.getManufacturer())) {
  363. if (clisttabm == null) {
  364. clisttabm = new ContactsList(c);
  365. }
  366. return clisttabm;
  367. } else {
  368. return new ContactsList();
  369. }
  370. }
  371. /**
  372. * @return the plisttab
  373. */
  374. public static ProductList getPlisttab() {
  375. return plisttab;
  376. }
  377. public static void setPredefTitle(String string) {
  378. predefTitle = string;
  379. }
  380. /**
  381. * Sets the max value for the progressbar
  382. *
  383. * @param max
  384. */
  385. public synchronized void setProgressMaximumValue(int max) {
  386. getProgressbar().setMaximum(max);
  387. }
  388. /**
  389. * Sets the current value for the progressbar
  390. *
  391. * @param val
  392. */
  393. public synchronized void setProgressValue(int val) {
  394. getProgressbar().setValue(val);
  395. }
  396. /**
  397. * Reset the progress bar
  398. */
  399. public synchronized void setProgressReset() {
  400. getProgressbar().setValue(0);
  401. getProgressbar().setIndeterminate(false);
  402. }
  403. /**
  404. * Sets the indeterminate property of the progress bar.
  405. *
  406. * @param b
  407. */
  408. public synchronized void setProgressRunning(boolean b) {
  409. getProgressbar().setIndeterminate(b);
  410. }
  411. /**
  412. *
  413. * @return The currently logged in user
  414. * @deprecated Use User.getCurrentUser instead
  415. */
  416. @Deprecated
  417. public static User getUser() {
  418. return mpv5.db.objects.User.getCurrentUser();
  419. }
  420. /**
  421. * Sets the cursor to waiting state if true
  422. *
  423. * @param truee
  424. */
  425. public void setWaiting(boolean truee) {
  426. if (Main.INSTANTIATED && getIdentifierFrame() != null) {
  427. if (truee) {
  428. getIdentifierFrame().setCursor(new Cursor(Cursor.WAIT_CURSOR));
  429. } else {
  430. getIdentifierFrame().setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
  431. }
  432. }
  433. }
  434. /**
  435. * Returns the curently selected tab or null if this is not a
  436. * {@link DataPanel}
  437. *
  438. * @return
  439. */
  440. public DataPanel getCurrentTab() {
  441. if (getTabPane().getSelectedComponent() instanceof DataPanel) {
  442. return (DataPanel) getTabPane().getSelectedComponent();
  443. } else if (getTabPane().getSelectedComponent() instanceof JScrollPane) {
  444. try {
  445. return (DataPanel) ((JScrollPane) getTabPane().getSelectedComponent()).getComponent(0);
  446. } catch (ClassCastException e) {
  447. try {
  448. return (DataPanel) ((JViewport) ((JScrollPane) getTabPane().getSelectedComponent()).getComponent(0)).getComponent(0);
  449. } catch (Exception ek) {
  450. return null;
  451. }
  452. }
  453. } else {
  454. return null;
  455. }
  456. }
  457. /**
  458. * Returns the tab at the specified position, or NULL if the tab is not
  459. * existing OR not a {@link DataPanel}
  460. *
  461. * @param position
  462. * @return
  463. */
  464. public DataPanel getTabAt(int position) {
  465. if (getTabPane().getComponent(position) instanceof DataPanel) {
  466. return (DataPanel) getTabPane().getComponent(position);
  467. } else if (getTabPane().getComponent(position) instanceof JScrollPane) {
  468. try {
  469. return (DataPanel) ((JScrollPane) getTabPane().getComponent(position)).getComponent(0);
  470. } catch (ClassCastException e) {
  471. try {
  472. return (DataPanel) ((JViewport) ((JScrollPane) getTabPane().getComponent(position)).getComponent(0)).getComponent(0);
  473. } catch (Exception et) {
  474. return null;
  475. }
  476. }
  477. } else {
  478. return null;
  479. }
  480. }
  481. public final void reloadFavorites() {
  482. Favourite[] favs = Favourite.getUserFavourites();
  483. for (int i = 0; i < favs.length; i++) {
  484. Favourite fav = favs[i];
  485. try {
  486. getFavMenu().add(new FavouritesMenuItem(Favourite.getObject(fav.getFavContext(), fav.__getItemsids())));
  487. } catch (NodataFoundException ex) {
  488. // Log.Debug(this, ex.getMessage());
  489. }
  490. }
  491. }
  492. /**
  493. * Add something to the clipboard menu
  494. *
  495. * @param obj
  496. */
  497. public void addToClipBoard(DatabaseObject obj) {
  498. getClipboardMenu().add(new ClipboardMenuItem(obj));
  499. getCurrentList().add(obj);
  500. setClipBoardVisible(true);
  501. }
  502. public MPView(SingleFrameApplication app) {
  503. super(app);
  504. MPView.identifierApplication = app;
  505. initComponents();
  506. try {
  507. Image icon = Toolkit.getDefaultToolkit().getImage(this.getFrame().getClass().getResource(Constants.ICON));
  508. this.getFrame().setIconImage(icon);
  509. this.getFrame().setTitle(Constants.TITLE);
  510. } catch (Exception e) {
  511. Log.Debug(e);
  512. }
  513. tabPane = new CloseableTabbedPane(this);
  514. identifierFrame = this.getFrame();
  515. Popup.identifier = identifierFrame;
  516. progressbar = this.progressBar;
  517. progressbar.setMinimum(0);
  518. messagelabel = statusMessageLabel;
  519. staterrorlabel = errorlabel;
  520. history = xhistory;
  521. history.setRenderer(new ComboBoxRendererForTooltip());
  522. if (tabPaneScrolled) {
  523. tabpanePanel.add(new JScrollPane(getTabPane()), BorderLayout.CENTER);
  524. jMenuItem25.setIcon(MPIcon.ICON_ENABLED);
  525. } else {
  526. tabpanePanel.add(tabPane, BorderLayout.CENTER);
  527. }
  528. favMenu = favouritesMenu;
  529. reloadFavorites();
  530. identifierView = this;
  531. filedialog = new DialogForFile(DialogForFile.FILES_ONLY);
  532. jMenuItem24.setEnabled(!LocalSettings.getBooleanProperty(LocalSettings.OFFICE_REMOTE));
  533. nav_outlookbar.setAnimated(navBarAnimated);
  534. getFrame().addComponentListener(new ComponentAdapter() {
  535. @Override
  536. public void componentResized(ComponentEvent event) {
  537. setNaviPanelSize();
  538. }
  539. });
  540. if (predefTitle != null) {
  541. identifierFrame.setTitle(identifierFrame.getTitle() + predefTitle);
  542. }
  543. QueryHandler.setWaitCursorFor(identifierFrame);
  544. pluginLoader = new YabsPluginLoader();
  545. addTab(new StartPage(), Messages.WELCOME);
  546. LocalSettings.save();
  547. if (Log.getLoglevel() == Log.LOGLEVEL_DEBUG) {
  548. // jMenuItem45.setEnabled(true);
  549. }
  550. identifierFrame.validate();
  551. loaded = true;
  552. }
  553. /**
  554. * Set the state of the main toolbar
  555. *
  556. * @param enable
  557. */
  558. public void enableToolBar(boolean enable) {
  559. getMainToolbar().setEnabled(enable);
  560. }
  561. private void setNaviPanelSize() {
  562. Runnable runnable = new Runnable() {
  563. public void run() {
  564. getNav_outlookbar().setPreferredSize(new Dimension(getNav_outlookbar().getWidth(), getFrame().getHeight() - 200));
  565. getNav_outlookbar().setMaximumSize(new Dimension(getNav_outlookbar().getWidth(), getFrame().getHeight() - 200));
  566. getNav_outlookbar().setMinimumSize(new Dimension(getNav_outlookbar().getWidth(), getFrame().getHeight() - 200));
  567. getNav_outlookbar().setSize(new Dimension(getNav_outlookbar().getWidth(), getFrame().getHeight() - 200));
  568. getNaviPanel().revalidate();
  569. getNaviPanel().repaint();
  570. }
  571. };
  572. SwingUtilities.invokeLater(runnable);
  573. }
  574. /**
  575. * Add a tab to the main tab pane, automatically determines the needed View
  576. *
  577. * @param item
  578. * @param tabTitle
  579. * @return The added tab
  580. */
  581. public DataPanel addTab(final DatabaseObject item, Object tabTitle) {
  582. setWaiting(true);
  583. boolean found = false;
  584. boolean proceed = true;
  585. if (mpv5.db.objects.User.getCurrentUser().getProperties().getProperty("org.openyabs.uiproperty", "avoidmultipleviews")) {
  586. Log.Debug(this, "Looking for an existing view for: " + item);
  587. int count = getTabPane().getTabCount();
  588. for (int i = 0; i < count; i++) {
  589. if (getTabAt(i) != null) {
  590. DataPanel panel = getTabAt(i);
  591. if (item.equals(panel.getDataOwner())) {
  592. getTabPane().setSelectedIndex(i);
  593. if (tabTitle == null) {
  594. getTabPane().setTitleAt(i, item.__getCname());
  595. } else {
  596. getTabPane().setTitleAt(i, tabTitle + ": " + item.__getCname());
  597. }
  598. proceed = false;
  599. break;
  600. }
  601. }
  602. }
  603. }
  604. if (proceed) {
  605. if (item.getView() != null && mpv5.db.objects.User.getCurrentUser().getProperties().getProperty("org.openyabs.uiproperty", "norecycletabs")) {
  606. if (tabTitle == null) {
  607. final DataPanel p = ((DataPanel) item.getView());
  608. addTab((JComponent) p, item.__getCname());
  609. Runnable runnable = new Runnable() {
  610. public void run() {
  611. p.setDataOwner(item, true);
  612. }
  613. };
  614. SwingUtilities.invokeLater(runnable);
  615. } else {
  616. final DataPanel p = ((DataPanel) item.getView());
  617. addTab((JComponent) p, tabTitle + ": " + item.__getCname());
  618. Runnable runnable = new Runnable() {
  619. public void run() {
  620. p.setDataOwner(item, true);
  621. }
  622. };
  623. SwingUtilities.invokeLater(runnable);
  624. }
  625. getCurrentTab().setDataOwner(item, true);
  626. } else if (item.getView() != null) {
  627. int count = getTabPane().getTabCount();
  628. for (int i = 0; i < count; i++) {
  629. if (getTabAt(i) != null) {
  630. DataPanel panel = getTabAt(i);
  631. if (!panel.getDataOwner().isExisting()
  632. && panel.getDataOwner().getContext().equals(item.getContext())
  633. && panel.getClass() == item.getView().getClass()) {
  634. // if (!panel.getDataOwner().isExisting() && panel.getDataOwner().getContext().equals(item.getContext())) {
  635. getTabPane().setSelectedIndex(i);
  636. panel.setDataOwner(item, true);
  637. if (tabTitle == null) {
  638. getTabPane().setTitleAt(i, item.__getCname());
  639. } else {
  640. getTabPane().setTitleAt(i, tabTitle + ": " + item.__getCname());
  641. }
  642. found = true;
  643. break;
  644. }
  645. }
  646. }
  647. if (!found) {
  648. try {
  649. final DataPanel p = (DataPanel) item.getView();
  650. if (tabTitle == null) {
  651. addTab((JComponent) p, item.__getCname());
  652. } else {
  653. addTab((JComponent) p, tabTitle + ": " + item.__getCname());
  654. }
  655. Runnable runnable = new Runnable() {
  656. public void run() {
  657. p.setDataOwner(item, true);
  658. }
  659. };
  660. SwingUtilities.invokeLater(runnable);
  661. } catch (ClassCastException e) {
  662. if (tabTitle == null) {
  663. addTab(item.getView(), item.__getCname());
  664. } else {
  665. addTab(item.getView(), tabTitle + ": " + item.__getCname());
  666. }
  667. }
  668. }
  669. }
  670. }
  671. setPointInFlow(addToFlow(item));
  672. setWaiting(false);
  673. return getCurrentTab();
  674. }
  675. /**
  676. * Add a tab to the main tab pane, automatically determines the needed View
  677. *
  678. * @param item
  679. * @return
  680. */
  681. public DataPanel addTab(DatabaseObject item) {
  682. return addTab(item, null);
  683. }
  684. /**
  685. * Shows a tab or adds it if needed
  686. *
  687. * @param instanceOf
  688. * @param label
  689. */
  690. public void addOrShowTab(JComponent instanceOf, Object label) {
  691. Component[] tabs = getTabPane().getComponents();
  692. boolean found = false;
  693. JScrollPane scroll = null;
  694. for (int i = 0; i < tabs.length; i++) {
  695. JComponent component = (JComponent) tabs[i];
  696. if (component instanceof JScrollPane) {
  697. scroll = (JScrollPane) component;
  698. component = (JComponent) ((JScrollPane) component).getComponent(0);
  699. }
  700. try {
  701. if (component.getComponent(0).equals(instanceOf)) {
  702. if (scroll == null) {
  703. getTabPane().setSelectedComponent(instanceOf);
  704. } else {
  705. getTabPane().setSelectedComponent(scroll);
  706. }
  707. found = true;
  708. }
  709. } catch (Exception e) {
  710. Log.Debug(this, e.getMessage());
  711. }
  712. }
  713. if (!found) {
  714. addTab(instanceOf, label.toString());
  715. }
  716. }
  717. /**
  718. * Add a tab to the main tab pane, with new JScrollPane
  719. *
  720. * @param tab
  721. * @param name
  722. * @return The now selected index
  723. */
  724. public int addTab(JComponent tab, String name) {
  725. JScrollPane spane = new JScrollPane(tab);
  726. getTabPane().addTab(name, spane);
  727. getTabPane().setSelectedComponent(spane);
  728. return getTabPane().getSelectedIndex();
  729. }
  730. private void addTab(JComponent tab, Messages name) {
  731. addTab(tab, name.toString());
  732. }
  733. private void importXML() {
  734. Wizard w = new Wizard(false);
  735. w.addPanel(new wizard_XMLImport_1(w));
  736. w.addPanel(new wizard_XMLImport_2(w));
  737. w.showWiz();
  738. }
  739. /**
  740. * This method is called from within the constructor to initialize the form.
  741. * WARNING: Do NOT modify this code. The content of this method is always
  742. * regenerated by the Form Editor.
  743. */
  744. @SuppressWarnings("unchecked")
  745. // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
  746. private void initComponents() {
  747. mainPanel = new javax.swing.JPanel();
  748. naviPanel = new javax.swing.JPanel();
  749. nav_outlookbar = new com.l2fprod.common.swing.JOutlookBar();
  750. parent_nav_contacts = new javax.swing.JPanel();
  751. nav_contacts = new javax.swing.JPanel();
  752. jButton5 = new javax.swing.JButton();
  753. jButton1 = new javax.swing.JButton();
  754. jButton18 = new javax.swing.JButton();
  755. parent_nav_accounting = new javax.swing.JPanel();
  756. nav_accounting = new javax.swing.JPanel();
  757. jButton8 = new javax.swing.JButton();
  758. jButton11 = new javax.swing.JButton();
  759. jButton21 = new javax.swing.JButton();
  760. jButton10 = new javax.swing.JButton();
  761. jButton15 = new javax.swing.JButton();
  762. jButton16 = new javax.swing.JButton();
  763. jButton17 = new javax.swing.JButton();
  764. parent_nav_products = new javax.swing.JPanel();
  765. nav_products = new javax.swing.JPanel();
  766. jButton13 = new javax.swing.JButton();
  767. jButton14 = new javax.swing.JButton();
  768. jButton19 = new javax.swing.JButton();
  769. jButton20 = new javax.swing.JButton();
  770. jButton12 = new javax.swing.JButton();
  771. jButton22 = new javax.swing.JButton();
  772. parent_nav_extras = new javax.swing.JPanel();
  773. nav_extras = new javax.swing.JPanel();
  774. jButton6 = new javax.swing.JButton();
  775. jButton7 = new javax.swing.JButton();
  776. jButton9 = new javax.swing.JButton();
  777. menuBar = new javax.swing.JMenuBar();
  778. javax.swing.JMenu fileMenu = new javax.swing.JMenu();
  779. jMenu14 = new javax.swing.JMenu();
  780. jMenuItem33 = new javax.swing.JMenuItem();
  781. jMenuItem34 = new javax.swing.JMenuItem();
  782. jMenuItem13 = new javax.swing.JMenuItem();
  783. jMenuItem14 = new javax.swing.JMenuItem();
  784. jSeparator3 = new javax.swing.JSeparator();
  785. jMenuItem6 = new javax.swing.JMenuItem();
  786. jMenu4 = new javax.swing.JMenu();
  787. jMenu5 = new javax.swing.JMenu();
  788. jMenuItem8 = new javax.swing.JMenuItem();
  789. jMenuItem22 = new javax.swing.JMenuItem();
  790. jMenu10 = new javax.swing.JMenu();
  791. jMenuItem20 = new javax.swing.JMenuItem();
  792. jMenuItem21 = new javax.swing.JMenuItem();
  793. jMenu11 = new javax.swing.JMenu();
  794. jMenuItem26 = new javax.swing.JMenuItem();
  795. jMenu13 = new javax.swing.JMenu();
  796. jMenuItem32 = new javax.swing.JMenuItem();
  797. jMenuItem41 = new javax.swing.JMenuItem();
  798. jSeparator8 = new javax.swing.JPopupMenu.Separator();
  799. jMenu8 = new javax.swing.JMenu();
  800. jMenuItem11 = new javax.swing.JMenuItem();
  801. jMenuItem38 = new javax.swing.JMenuItem();
  802. jMenuItem40 = new javax.swing.JMenuItem();
  803. jMenu12 = new javax.swing.JMenu();
  804. jMenuItem28 = new javax.swing.JMenuItem();
  805. jMenuItem29 = new javax.swing.JMenuItem();
  806. jSeparator1 = new javax.swing.JSeparator();
  807. jMenu3 = new javax.swing.JMenu();
  808. jMenuItem18 = new javax.swing.JMenuItem();
  809. jMenuItem37 = new javax.swing.JMenuItem();
  810. jMenuItem46 = new javax.swing.JMenuItem();
  811. jSeparator9 = new javax.swing.JPopupMenu.Separator();
  812. jMenuItem12 = new javax.swing.JMenuItem();
  813. editMenu = new javax.swing.JMenu();
  814. jMenuItem15 = new javax.swing.JMenuItem();
  815. jSeparator4 = new javax.swing.JSeparator();
  816. jMenuItem9 = new javax.swing.JMenuItem();
  817. jMenuItem16 = new javax.swing.JMenuItem();
  818. jSeparator5 = new javax.swing.JSeparator();
  819. jMenuItem17 = new javax.swing.JMenuItem();
  820. viewMenu = new javax.swing.JMenu();
  821. jMenu2 = new javax.swing.JMenu();
  822. jMenuItem1 = new javax.swing.JMenuItem();
  823. jMenuItem2 = new javax.swing.JMenuItem();
  824. jMenuItem39 = new javax.swing.JMenuItem();
  825. jMenuItem25 = new javax.swing.JMenuItem();
  826. jMenuItem19 = new javax.swing.JMenuItem();
  827. jMenuItem4 = new javax.swing.JMenuItem();
  828. jMenu15 = new javax.swing.JMenu();
  829. jMenuItem35 = new javax.swing.JMenuItem();
  830. jMenuItem36 = new javax.swing.JMenuItem();
  831. toolsMenu = new javax.swing.JMenu();
  832. jMenuItem3 = new javax.swing.JMenuItem();
  833. jMenuItem23 = new javax.swing.JMenuItem();
  834. jMenuItem31 = new javax.swing.JMenuItem();
  835. jMenuItem24 = new javax.swing.JMenuItem();
  836. jMenuItem47 = new javax.swing.JMenuItem();
  837. jSeparator6 = new javax.swing.JSeparator();
  838. jMenuItem43 = new javax.swing.JMenuItem();
  839. jMenuItem45 = new javax.swing.JMenuItem();
  840. jMenu1 = new javax.swing.JMenu();
  841. jMenuItem42 = new javax.swing.JMenuItem();
  842. jMenuItem44 = new javax.swing.JMenuItem();
  843. favouritesMenu = new javax.swing.JMenu();
  844. clipboardMenu = new javax.swing.JMenu();
  845. jMenu6 = new javax.swing.JMenu();
  846. jMenuItem7 = new javax.swing.JMenuItem();
  847. jMenuItem5 = new javax.swing.JMenuItem();
  848. helpmenu = new javax.swing.JMenu();
  849. jMenuItem10 = new javax.swing.JMenuItem();
  850. jMenuItem27 = new javax.swing.JMenuItem();
  851. jMenuItem30 = new javax.swing.JMenuItem();
  852. statusPanel = new javax.swing.JPanel();
  853. statusMessageLabel = new FadeOnChangeLabel();
  854. pluginIcons = new javax.swing.JPanel();
  855. separator = new javax.swing.JPanel();
  856. progressBar = new javax.swing.JProgressBar();
  857. separator1 = new javax.swing.JPanel();
  858. xhistory = new javax.swing.JComboBox();
  859. serverlabel = new javax.swing.JPanel();
  860. errorlabel = new javax.swing.JLabel();
  861. officelabel = new javax.swing.JPanel();
  862. mainToolbar = new javax.swing.JToolBar();
  863. closeButton1 = new javax.swing.JButton();
  864. closeButton2 = new javax.swing.JButton();
  865. jSeparator7 = new javax.swing.JToolBar.Separator();
  866. closeButton = new javax.swing.JButton();
  867. lockButton = new javax.swing.JButton();
  868. jSeparator2 = new javax.swing.JToolBar.Separator();
  869. calculatorButton = new javax.swing.JButton();
  870. jButton2 = new javax.swing.JButton();
  871. mainPanel.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1));
  872. mainPanel.setName("mainPanel"); // NOI18N
  873. tabpanePanel.setBackground(new java.awt.Color(255, 255, 255));
  874. tabpanePanel.setBorder(javax.swing.BorderFactory.createEtchedBorder());
  875. tabpanePanel.setName("tabpanePanel"); // NOI18N
  876. tabpanePanel.setLayout(new java.awt.BorderLayout());
  877. naviPanel.setBorder(javax.swing.BorderFactory.createEtchedBorder());
  878. naviPanel.setAutoscrolls(true);
  879. naviPanel.setFocusCycleRoot(true);
  880. naviPanel.setName("naviPanel"); // NOI18N
  881. nav_outlookbar.setAnimated(false);
  882. nav_outlookbar.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1));
  883. nav_outlookbar.setName("nav_outlookbar"); // NOI18N
  884. parent_nav_contacts.setBackground(new java.awt.Color(153, 153, 153));
  885. parent_nav_contacts.setName("parent_nav_contacts"); // NOI18N
  886. parent_nav_contacts.setPreferredSize(new java.awt.Dimension(110, 400));
  887. parent_nav_contacts.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.CENTER, 0, 0));
  888. nav_contacts.setBackground(new java.awt.Color(153, 153, 153));
  889. nav_contacts.setName("nav_contacts"); // NOI18N
  890. nav_contacts.setLayout(new java.awt.GridLayout(0, 1, 2, 5));
  891. jButton5.setFont(jButton5.getFont().deriveFont(jButton5.getFont().getSize()-1f));
  892. jButton5.setIcon(new javax.swing.ImageIcon(getClass().getResource("/mpv5/resources/images/32/agt_family.png"))); // NOI18N
  893. java.util.ResourceBundle bundle = mpv5.i18n.LanguageManager.getBundle(); // NOI18N
  894. jButton5.setText(bundle.getString("MPView.jButton5.text_1")); // NOI18N
  895. jButton5.setToolTipText(bundle.getString("MPView.jButton5.toolTipText_1")); // NOI18N
  896. jButton5.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
  897. jButton5.setMaximumSize(new java.awt.Dimension(250, 60));
  898. jButton5.setMinimumSize(new java.awt.Dimension(80, 50));
  899. jButton5.setName("jButton5"); // NOI18N
  900. jButton5.setPreferredSize(new java.awt.Dimension(110, 57));
  901. jButton5.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
  902. jButton5.addActionListener(new java.awt.event.ActionListener() {
  903. public void actionPerformed(java.awt.event.ActionEvent evt) {
  904. jButton5ActionPerformed(evt);
  905. }
  906. });
  907. nav_contacts.add(jButton5);
  908. jButton1.setFont(jButton1.getFont().deriveFont(jButton1.getFont().getSize()-1f));
  909. jButton1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/mpv5/resources/images/32/edit_group.png"))); // NOI18N
  910. jButton1.setText(bundle.getString("MPView.jButton1.text_1")); // NOI18N
  911. jButton1.setToolTipText(bundle.getString("MPView.jButton1.toolTipText_1")); // NOI18N
  912. jButton1.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
  913. jButton1.setMaximumSize(new java.awt.Dimension(250, 60));
  914. jButton1.setMinimumSize(new java.awt.Dimension(80, 50));
  915. jButton1.setName("jButton1"); // NOI18N
  916. jButton1.setPreferredSize(new java.awt.Dimension(110, 57));
  917. jButton1.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
  918. jButton1.addActionListener(new java.awt.event.ActionListener() {
  919. public void actionPerformed(java.awt.event.ActionEvent evt) {
  920. jButton1ActionPerformed(evt);
  921. }
  922. });
  923. nav_contacts.add(jButton1);
  924. jButton18.setFont(jButton18.getFont().deriveFont(jButton18.getFont().getSize()-1f));
  925. jButton18.setIcon(new javax.swing.ImageIcon(getClass().getResource("/mpv5/resources/images/32/edit_group.png"))); // NOI18N
  926. jButton18.setText(bundle.getString("MPView.jButton18.text_1")); // NOI18N
  927. jButton18.setToolTipText(bundle.getString("MPView.jButton18.toolTipText_1")); // NOI18N
  928. jButton18.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
  929. jButton18.setMaximumSize(new java.awt.Dimension(250, 60));
  930. jButton18.setMinimumSize(new java.awt.Dimension(80, 50));
  931. jButton18.setName("jButton18"); // NOI18N
  932. jButton18.setPreferredSize(new java.awt.Dimension(110, 57));
  933. jButton18.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
  934. jButton18.addActionListener(new java.awt.event.ActionListener() {
  935. public void actionPerformed(java.awt.event.ActionEvent evt) {
  936. jButton18ActionPerformed(evt);
  937. }
  938. });
  939. nav_contacts.add(jButton18);
  940. parent_nav_contacts.add(nav_contacts);
  941. nav_outlookbar.addTab(bundle.getString("MPView.parent_nav_contacts.TabConstraints.tabTitle_1"), parent_nav_contacts); // NOI18N
  942. parent_nav_accounting.setBackground(new java.awt.Color(153, 153, 153));
  943. parent_nav_accounting.setName("parent_nav_accounting"); // NOI18N
  944. parent_nav_accounting.setPreferredSize(new java.awt.Dimension(110, 400));
  945. parent_nav_accounting.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.CENTER, 0, 0));
  946. nav_accounting.setBackground(new java.awt.Color(153, 153, 153));
  947. nav_accounting.setName("nav_accounting"); // NOI18N
  948. nav_accounting.setLayout(new java.awt.GridLayout(0, 1, 2, 5));
  949. jButton8.setFont(jButton8.getFont().deriveFont(jButton8.getFont().getSize()-1f));
  950. jButton8.setIcon(new javax.swing.ImageIcon(getClass().getResource("/mpv5/resources/images/32/folder_blue.png"))); // NOI18N
  951. jButton8.setText(bundle.getString("MPView.jButton8.text")); // NOI18N
  952. jButton8.setToolTipText(bundle.getString("MPView.jButton8.toolTipText")); // NOI18N
  953. jButton8.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
  954. jButton8.setMaximumSize(new java.awt.Dimension(250, 60));
  955. jButton8.setMinimumSize(new java.awt.Dimension(80, 50));
  956. jButton8.setName("jButton8"); // NOI18N
  957. jButton8.setPreferredSize(new java.awt.Dimension(110, 57));
  958. jButton8.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
  959. jButton8.addActionListener(new java.awt.event.ActionListener() {
  960. public void actionPerformed(java.awt.event.ActionEvent evt) {
  961. jButton8ActionPerformed(evt);
  962. }
  963. });
  964. nav_accounting.add(jButton8);
  965. jButton11.setFont(jButton11.getFont().deriveFont(jButton11.getFont().getSize()-1f));
  966. jButton11.setIcon(new javax.swing.ImageIcon(getClass().getResource("/mpv5/resources/images/32/folder_green.png"))); // NOI18N
  967. jButton11.setText(bundle.getString("MPView.jButton11.text")); // NOI18N
  968. jButton11.setToolTipText(bundle.getString("MPView.jButton11.toolTipText")); // NOI18N
  969. jButton11.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
  970. jButton11.setMaximumSize(new java.awt.Dimension(250, 60));
  971. jButton11.setMinimumSize(new java.awt.Dimension(80, 50));
  972. jButton11.setName("jButton11"); // NOI18N
  973. jButton11.setPreferredSize(new java.awt.Dimension(110, 57));
  974. jButton11.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
  975. jButton11.addActionListener(new java.awt.event.ActionListener() {
  976. public void actionPerformed(java.awt.event.ActionEvent evt) {
  977. jButton11ActionPerformed(evt);
  978. }
  979. });
  980. nav_accounting.add(jButton11);
  981. jButton21.setFont(jButton21.getFont().deriveFont(jButton21.getFont().getSize()-1f));
  982. jButton21.setIcon(new javax.swing.ImageIcon(getClass().getResource("/mpv5/resources/images/32/folder_documents.png"))); // NOI18N
  983. jButton21.setText(bundle.getString("MPView.jButton21.text")); // NOI18N
  984. jButton21.setToolTipText(bundle.getString("MPView.jButton21.toolTipText")); // NOI18N
  985. jButton21.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
  986. jButton21.setMaximumSize(new java.awt.Dimension(250, 60));
  987. jButton21.setMinimumSize(new java.awt.Dimension(80, 50));
  988. jButton21.setName("jButton21"); // NOI18N
  989. jButton21.setPreferredSize(new java.awt.Dimension(110, 57));
  990. jButton21.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
  991. jButton21.addActionListener(new java.awt.event.ActionListener() {
  992. public void actionPerformed(java.awt.event.ActionEvent evt) {
  993. jButton21ActionPerformed(evt);
  994. }
  995. });
  996. nav_accounting.add(jButton21);
  997. jButton10.setFont(jButton10.getFont().deriveFont(jButton10.getFont().getSize()-1f));
  998. jButton10.setIcon(new javax.swing.ImageIcon(getClass().getResource("/mpv5/resources/images/32/folder_grey.png"))); // NOI18N
  999. jButton10.setText(bundle.getString("MPView.jButton10.text")); // NOI18N
  1000. jButton10.setToolTipText(bundle.getString("MPView.jButton10.toolTipText")); // NOI18N
  1001. jButton10.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
  1002. jButton10.setMaximumSize(new java.awt.Dimension(250, 60));
  1003. jButton10.setMinimumSize(new java.awt.Dimension(80, 50));
  1004. jButton10.setName("jButton10"); // NOI18N
  1005. jButton10.setPreferredSize(new java.awt.Dimension(110, 57));
  1006. jButton10.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
  1007. jButton10.addActionListener(new java.awt.event.ActionListener() {
  1008. public void actionPerformed(java.awt.event.ActionEvent evt) {
  1009. jButton10ActionPerformed(evt);
  1010. }
  1011. });
  1012. nav_accounting.add(jButton10);
  1013. jButton15.setFont(jButton15.getFont().deriveFont(jButton15.getFont().getSize()-1f));
  1014. jButton15.setIcon(new javax.swing.ImageIcon(getClass().getResource("/mpv5/resources/images/32/folder_red.png"))); // NOI18N
  1015. jButton15.setText(bundle.getString("MPView.jButton15.text")); // NOI18N
  1016. jButton15.setToolTipText(bundle.getString("MPView.jButton15.toolTipText")); // NOI18N
  1017. jButton15.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
  1018. jButton15.setMaximumSize(new java.awt.Dimension(250, 60));
  1019. jButton15.setMinimumSize(new java.awt.Dimension(80, 50));
  1020. jButton15.setName("jButton15"); // NOI18N
  1021. jButton15.setPreferredSize(new java.awt.Dimension(110, 57));
  1022. jButton15.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
  1023. jButton15.addActionListener(new java.awt.event.ActionListener() {
  1024. public void actionPerformed(java.awt.event.ActionEvent evt) {
  1025. jButton15ActionPerformed(evt);
  1026. }
  1027. });
  1028. nav_accounting.add(jButton15);
  1029. jButton16.setFont(jButton16.getFont().deriveFont(jButton16.getFont().getSize()-1f));
  1030. jButton16.setIcon(new javax.swing.ImageIcon(getClass().getResource("/mpv5/resources/images/32/folder_yellow.png"))); // NOI18N
  1031. jButton16.setText(bundle.getString("MPView.jButton16.text")); // NOI18N
  1032. jButton16.setToolTipText(bundle.getString("MPView.jButton16.toolTipText")); // NOI18N
  1033. jButton16.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
  1034. jButton16.setMaximumSize(new java.awt.Dimension(250, 60));
  1035. jButton16.setMinimumSize(new java.awt.Dimension(80, 50));
  1036. jButton16.setName("jButton16"); // NOI18N
  1037. jButton16.setPreferredSize(new java.awt.Dimension(110, 57));
  1038. jButton16.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
  1039. jButton16.addActionListener(new java.awt.event.ActionListener() {
  1040. public void actionPerformed(java.awt.event.ActionEvent evt) {
  1041. jButton16ActionPerformed(evt);
  1042. }
  1043. });
  1044. nav_accounting.add(jButton16);
  1045. jButton17.setFont(jButton17.getFont().deriveFont(jButton17.getFont().getSize()-1f));
  1046. jButton17.setIcon(new javax.swing.ImageIcon(getClass().getResource("/mpv5/resources/images/32/reload.png"))); // NOI18N
  1047. jButton17.setText(bundle.getString("MPView.jButton17.text")); // NOI18N
  1048. jButton17.setToolTipText(bundle.getString("MPView.jButton17.toolTipText")); // NOI18N
  1049. jButton17.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
  1050. jButton17.setMaximumSize(new java.awt.Dimension(250, 60));
  1051. jButton17.setMinimumSize(new java.awt.Dimension(80, 50));
  1052. jButton17.setName("jButton17"); // NOI18N
  1053. jButton17.setPreferredSize(new java.awt.Dimension(110, 57));
  1054. jButton17.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
  1055. jButton17.addActionListener(new java.awt.event.ActionListener() {
  1056. public void actionPerformed(java.awt.event.ActionEvent evt) {
  1057. jButton17ActionPerformed(evt);
  1058. }
  1059. });
  1060. nav_accounting.add(jButton17);
  1061. parent_nav_accounting.add(nav_accounting);
  1062. nav_outlookbar.addTab(bundle.getString("MPView.parent_nav_accounting.TabConstraints.tabTitle_1"), parent_nav_accounting); // NOI18N
  1063. parent_nav_products.setBackground(new java.awt.Color(153, 153, 153));
  1064. parent_nav_products.setName("parent_nav_products"); // NOI18N
  1065. parent_nav_products.setPreferredSize(new java.awt.Dimension(110, 400));
  1066. parent_nav_products.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.CENTER, 0, 0));
  1067. nav_products.setBackground(new java.awt.Color(153, 153, 153));
  1068. nav_products.setName("nav_products"); // NOI18N
  1069. nav_products.setLayout(new java.awt.GridLayout(0, 1, 2, 5));
  1070. jButton13.setFont(jButton13.getFont().deriveFont(jButton13.getFont().getSize()-1f));
  1071. jButton13.setIcon(new javax.swing.ImageIcon(getClass().getResource("/mpv5/resources/images/32/tux.png"))); // NOI18N
  1072. jButton13.setText(bundle.getString("MPView.jButton13.text")); // NOI18N
  1073. jButton13.setToolTipText(bundle.getString("MPView.jButton13.toolTipText")); // NOI18N
  1074. jButton13.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
  1075. jButton13.setMaximumSize(new java.awt.Dimension(250, 60));
  1076. jButton13.setMinimumSize(new java.awt.Dimension(80, 50));
  1077. jButton13.setName("jButton13"); // NOI18N
  1078. jButton13.setPreferredSize(new java.awt.Dimension(110, 57));
  1079. jButton13.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
  1080. jButton13.addActionListener(new java.awt.event.ActionListener() {
  1081. public void actionPerformed(java.awt.event.ActionEvent evt) {
  1082. jButton13ActionPerformed(evt);
  1083. }
  1084. });
  1085. nav_products.add(jButton13);
  1086. jButton14.setFont(jButton14.getFont().deriveFont(jButton14.getFont().getSize()-1f));
  1087. jButton14.setIcon(new javax.swing.ImageIcon(getClass().getResource("/mpv5/resources/images/32/playlist.png"))); // NOI18N
  1088. jButton14.setText(bundle.getString("MPView.jButton14.text")); // NOI18N
  1089. jButton14.setToolTipText(bundle.getString("MPView.jButton14.toolTipText")); // NOI18N
  1090. jButton14.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
  1091. jButton14.setMaximumSize(new java.awt.Dimension(250, 60));
  1092. jButton14.setMinimumSize(new java.awt.Dimension(80, 50));
  1093. jButton14.setName("jButton14"); // NOI18N
  1094. jButton14.setPreferredSize(new java.awt.Dimension(110, 57));
  1095. jButton14.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
  1096. jButton14.addActionListener(new java.awt.event.ActionListener() {
  1097. public void actionPerformed(java.awt.event.ActionEvent evt) {
  1098. jButton14ActionPerformed(evt);
  1099. }
  1100. });
  1101. nav_products.add(jButton14);
  1102. jButton19.setFont(jButton19.getFont().deriveFont(jButton19.getFont().getSize()-1f));
  1103. jButton19.setIcon(new javax.swing.ImageIcon(getClass().getResource("/mpv5/resources/images/32/kghostview.png"))); // NOI18N
  1104. jButton19.setText(bundle.getString("MPView.jButton19.text")); // NOI18N
  1105. jButton19.setToolTipText(bundle.getString("MPView.jButton19.toolTipText")); // NOI18N
  1106. jButton19.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
  1107. jButton19.setMaximumSize(new java.awt.Dimension(250, 60));
  1108. jButton19.setMinimumSize(new java.awt.Dimension(80, 50));
  1109. jButton19.setName("jButton19"); // NOI18N
  1110. jButton19.setPreferredSize(new java.awt.Dimension(110, 57));
  1111. jButton19.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
  1112. jButton19.addActionListener(new java.awt.event.ActionListener() {
  1113. public void actionPerformed(java.awt.event.ActionEvent evt) {
  1114. jButton19ActionPerformed(evt);
  1115. }
  1116. });
  1117. nav_products.add(jButton19);
  1118. jButton20.setFont(jButton20.getFont().deriveFont(jButton20.getFont().getSize()-1f));
  1119. jButton20.setIcon(new javax.swing.ImageIcon(getClass().getResource("/mpv5/resources/images/32/window_list.png"))); // NOI18N
  1120. jButton20.setText(bundle.getString("MPView.jButton20.text")); // NOI18N
  1121. jButton20.setToolTipText(bundle.getString("MPView.jButton20.toolTipText")); // NOI18N
  1122. jButton20.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
  1123. jButton20.setMaximumSize(new java.awt.Dimension(250, 60));
  1124. jButton20.setMinimumSize(new java.awt.Dimension(80, 50));
  1125. jButton20.setName("jButton20"); // NOI18N
  1126. jButton20.setPreferredSize(new java.awt.Dimension(110, 57));
  1127. jButton20.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
  1128. jButton20.addActionListener(new java.awt.event.ActionListener() {
  1129. public void actionPerformed(java.awt.event.ActionEvent evt) {
  1130. jButton20ActionPerformed(evt);
  1131. }
  1132. });
  1133. nav_products.add(jButton20);
  1134. jButton12.setFont(jButton12.getFont().deriveFont(jButton12.getFont().getSize()-1f));
  1135. jButton12.setIcon(new javax.swing.ImageIcon(getClass().getResource("/mpv5/resources/images/32/gear.png"))); // NOI18N
  1136. jButton12.setText(bundle.getString("MPView.jButton12.text")); // NOI18N
  1137. jButton12.setToolTipText(bundle.getString("MPView.jButton12.toolTipText")); // NOI18N
  1138. jButton12.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
  1139. jButton12.setMaximumSize(new java.awt.Dimension(250, 60));
  1140. jButton12.setMinimumSize(new java.awt.Dimension(80, 50));
  1141. jButton12.setName("jButton12"); // NOI18N
  1142. jButton12.setPreferredSize(new java.awt.Dimension(110, 57));
  1143. jButton12.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
  1144. jButton12.addActionListener(new java.awt.event.ActionListener() {
  1145. public void actionPerformed(java.awt.event.ActionEvent evt) {
  1146. jButton12ActionPerformed(evt);
  1147. }
  1148. });
  1149. nav_products.add(jButton12);
  1150. jButton22.setFont(jButton22.getFont().deriveFont(jButton22.getFont().getSize()-1f));
  1151. jButton22.setIcon(new javax.swing.ImageIcon(getClass().getResource("/mpv5/resources/images/32/readme.png"))); // NOI18N
  1152. jButton22.setText(bundle.getString("MPView.jButton22.text")); // NOI18N
  1153. jButton22.setToolTipText(bundle.getString("MPView.jButton22.toolTipText")); // NOI18N
  1154. jButton22.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
  1155. jButton22.setMaximumSize(new java.awt.Dimension(250, 60));
  1156. jButton22.setMinimumSize(new java.awt.Dimension(80, 50));
  1157. jButton22.setName("jButton22"); // NOI18N
  1158. jButton22.setPreferredSize(new java.awt.Dimension(110, 57));
  1159. jButton22.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
  1160. jButton22.addActionListener(new java.awt.event.ActionListener() {
  1161. public void actionPerformed(java.awt.event.ActionEvent evt) {
  1162. jButton22ActionPerformed(evt);
  1163. }
  1164. });
  1165. nav_products.add(jButton22);
  1166. parent_nav_products.add(nav_products);
  1167. nav_outlookbar.addTab(bundle.getString("MPView.parent_nav_products.TabConstraints.tabTitle_1"), parent_nav_products); // NOI18N
  1168. parent_nav_extras.setBackground(new java.awt.Color(153, 153, 153));
  1169. parent_nav_extras.setName("parent_nav_extras"); // NOI18N
  1170. parent_nav_extras.setPreferredSize(new java.awt.Dimension(110, 400));
  1171. parent_nav_extras.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.CENTER, 0, 0));
  1172. nav_extras.setBackground(new java.awt.Color(153, 153, 153));
  1173. nav_extras.setName("nav_extras"); // NOI18N
  1174. nav_extras.setLayout(new java.awt.GridLayout(0, 1, 2, 5));
  1175. jButton6.setFont(jButton6.getFont().deriveFont(jButton6.getFont().getSize()-1f));
  1176. jButton6.setIcon(new javax.swing.ImageIcon(getClass().getResource("/mpv5/resources/images/32/kservices.png"))); // NOI18N
  1177. jButton6.setText(bundle.getString("MPView.jButton6.text")); // NOI18N
  1178. jButton6.setToolTipText(bundle.getString("MPView.jButton6.toolTipText")); // NOI18N
  1179. jButton6.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
  1180. jButton6.setMaximumSize(new java.awt.Dimension(250, 60));
  1181. jButton6.setMinimumSize(new java.awt.Dimension(80, 50));
  1182. jButton6.setName("jButton6"); // NOI18N
  1183. jButton6.setPreferredSize(new java.awt.Dimension(110, 57));
  1184. jButton6.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
  1185. jButton6.addActionListener(new java.awt.event.ActionListener() {
  1186. public void actionPerformed(java.awt.event.ActionEvent evt) {
  1187. jButton6ActionPerformed(evt);
  1188. }
  1189. });
  1190. nav_extras.add(jButton6);
  1191. jButton7.setFont(jButton7.getFont().deriveFont(jButton7.getFont().getSize()-1f));
  1192. jButton7.setIcon(new javax.swing.ImageIcon(getClass().getResource("/mpv5/resources/images/32/edittrash.png"))); // NOI18N
  1193. jButton7.setText(bundle.getString("MPView.jButton7.text")); // NOI18N
  1194. jButton7.setToolTipText(bundle.getString("MPView.jButton7.toolTipText")); // NOI18N
  1195. jButton7.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
  1196. jButton7.setMaximumSize(new java.awt.Dimension(250, 60));
  1197. jButton7.setMinimumSize(new java.awt.Dimension(80, 50));
  1198. jButton7.setName("jButton7"); // NOI18N
  1199. jButton7.setPreferredSize(new java.awt.Dimension(110, 57));
  1200. jButton7.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
  1201. jButton7.addActionListener(new java.awt.event.ActionListener() {
  1202. public void actionPerformed(java.awt.event.ActionEvent evt) {
  1203. jButton7ActionPerformed(evt);
  1204. }
  1205. });
  1206. nav_extras.add(jButton7);
  1207. jButton9.setFont(jButton9.getFont().deriveFont(jButton9.getFont().getSize()-1f));
  1208. jButton9.setIcon(new javax.swing.ImageIcon(getClass().getResource("/mpv5/resources/images/32/folder_txt.png"))); // NOI18N
  1209. jButton9.setText(bundle.getString("MPView.jButton9.text")); // NOI18N
  1210. jButton9.setToolTipText(bundle.getString("MPView.jButton9.toolTipText")); // NOI18N
  1211. jButton9.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
  1212. jButton9.setMaximumSize(new java.awt.Dimension(250, 60));
  1213. jButton9.setMinimumSize(new java.awt.Dimension(80, 50));
  1214. jButton9.setName("jButton9"); // NOI18N
  1215. jButton9.setPreferredSize(new java.awt.Dimension(110, 57));
  1216. jButton9.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
  1217. jButton9.addActionListener(new java.awt.event.ActionListener() {
  1218. public void actionPerformed(java.awt.event.ActionEvent evt) {
  1219. jButton9ActionPerformed(evt);
  1220. }
  1221. });
  1222. nav_extras.add(jButton9);
  1223. jButton9.getAccessibleContext().setAccessibleDescription(bundle.getString("MPView.jButton9.AccessibleContext.accessibleDescription")); // NOI18N
  1224. parent_nav_extras.add(nav_extras);
  1225. nav_outlookbar.addTab(bundle.getString("MPView.parent_nav_extras.TabConstraints.tabTitle"), parent_nav_extras); // NOI18N
  1226. javax.swing.GroupLayout naviPanelLayout = new javax.swing.GroupLayout(naviPanel);
  1227. naviPanel.setLayout(naviPanelLayout);
  1228. naviPanelLayout.setHorizontalGroup(
  1229. naviPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  1230. .addComponent(nav_outlookbar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  1231. );
  1232. naviPanelLayout.setVerticalGroup(
  1233. naviPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  1234. .addGroup(naviPanelLayout.createSequentialGroup()
  1235. .addComponent(nav_outlookbar, javax.swing.GroupLayout.DEFAULT_SIZE, 518, Short.MAX_VALUE)
  1236. .addContainerGap())
  1237. );
  1238. javax.swing.GroupLayout mainPanelLayout = new javax.swing.GroupLayout(mainPanel);
  1239. mainPanel.setLayout(mainPanelLayout);
  1240. mainPanelLayout.setHorizontalGroup(
  1241. mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  1242. .addGroup(mainPanelLayout.createSequentialGroup()
  1243. .addComponent(naviPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  1244. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  1245. .addComponent(tabpanePanel, javax.swing.GroupLayout.DEFAULT_SIZE, 678, Short.MAX_VALUE))
  1246. );
  1247. mainPanelLayout.setVerticalGroup(
  1248. mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  1249. .addComponent(naviPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  1250. .addComponent(tabpanePanel, javax.swing.GroupLayout.DEFAULT_SIZE, 534, Short.MAX_VALUE)
  1251. );
  1252. menuBar.setName("menuBar"); // NOI18N
  1253. fileMenu.setText(bundle.getString("MPView.fileMenu.text_1")); // NOI18N
  1254. fileMenu.setName("fileMenu"); // NOI18N
  1255. jMenu14.setText(bundle.getString("MPView.jMenu14.text")); // NOI18N
  1256. jMenu14.setName("jMenu14"); // NOI18N
  1257. jMenuItem33.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, java.awt.event.InputEvent.CTRL_MASK));
  1258. jMenuItem33.setText(bundle.getString("MPView.jMenuItem33.text")); // NOI18N
  1259. jMenuItem33.setName("jMenuItem33"); // NOI18N
  1260. jMenuItem33.addActionListener(new java.awt.event.ActionListener() {
  1261. public void actionPerformed(java.awt.event.ActionEvent evt) {
  1262. jMenuItem33ActionPerformed(evt);
  1263. }
  1264. });
  1265. jMenu14.add(jMenuItem33);
  1266. jMenuItem34.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_I, java.awt.event.InputEvent.CTRL_MASK));
  1267. jMenuItem34.setText(bundle.getString("MPView.jMenuItem34.text")); // NOI18N
  1268. jMenuItem34.setName("jMenuItem34"); // NOI18N
  1269. jMenuItem34.addActionListener(new java.awt.event.ActionListener() {
  1270. public void actionPerformed(java.awt.event.ActionEvent evt) {
  1271. jMenuItem34ActionPerformed(evt);
  1272. }
  1273. });
  1274. jMenu14.add(jMenuItem34);
  1275. fileMenu.add(jMenu14);
  1276. jMenuItem13.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.CTRL_MASK));
  1277. jMenuItem13.setIcon(new javax.swing.ImageIcon(getClass().getResource("/mpv5/resources/images/16/filesave.png"))); // NOI18N
  1278. jMenuItem13.setText(bundle.getString("MPView.jMenuItem13.text")); // NOI18N
  1279. jMenuItem13.setName("jMenuItem13"); // NOI18N
  1280. jMenuItem13.addActionListener(new java.awt.event.ActionListener() {
  1281. public void actionPerformed(java.awt.event.ActionEvent evt) {
  1282. jMenuItem13ActionPerformed(evt);
  1283. }
  1284. });
  1285. fileMenu.add(jMenuItem13);
  1286. jMenuItem14.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_N, java.awt.event.InputEvent.CTRL_MASK));
  1287. jMenuItem14.setIcon(new javax.swing.ImageIcon(getClass().getResource("/mpv5/resources/images/16/filesaveas.png"))); // NOI18N
  1288. jMenuItem14.setText(bundle.getString("MPView.jMenuItem14.text")); // NOI18N
  1289. jMenuItem14.setName("jMenuItem14"); // NOI18N
  1290. jMenuItem14.addActionListener(new java.awt.event.ActionListener() {
  1291. public void actionPerformed(java.awt.event.ActionEvent evt) {
  1292. jMenuItem14ActionPerformed(evt);
  1293. }
  1294. });
  1295. fileMenu.add(jMenuItem14);
  1296. jSeparator3.setName("jSeparator3"); // NOI18N
  1297. fileMenu.add(jSeparator3);
  1298. jMenuItem6.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_P, java.awt.event.InputEvent.CTRL_MASK));
  1299. jMenuItem6.setIcon(new javax.swing.ImageIcon(getClass().getResource("/mpv5/resources/images/22/printer1.png"))); // NOI18N
  1300. jMenuItem6.setText(bundle.getString("MPView.jMenuItem6.text")); // NOI18N
  1301. jMenuItem6.setName("jMenuItem6"); // NOI18N
  1302. jMenuItem6.addActionListener(new java.awt.event.ActionListener() {
  1303. public void actionPerformed(java.awt.event.ActionEvent evt) {
  1304. jMenuItem6ActionPerformed(evt);
  1305. }
  1306. });
  1307. fileMenu.add(jMenuItem6);
  1308. jMenu4.setText(bundle.getString("MPView.jMenu4.text")); // NOI18N
  1309. jMenu4.setName("jMenu4"); // NOI18N
  1310. jMenu5.setIcon(new javax.swing.ImageIcon(getClass().getResource("/mpv5/resources/images/16/kontact_contacts.png"))); // NOI18N
  1311. jMenu5.setText(bundle.getString("MPView.jMenu5.text")); // NOI18N
  1312. jMenu5.setName("jMenu5"); // NOI18N
  1313. jMenuItem8.setIcon(new javax.swing.ImageIcon(getClass().getResource("/mpv5/resources/images/16/xml.png"))); // NOI18N
  1314. jMenuItem8.setText(bundle.getString("MPView.jMenuItem8.text")); // NOI18N
  1315. jMenuItem8.setName("jMenuItem8"); // NOI18N
  1316. jMenuItem8.addActionListener(new java.awt.event.ActionListener() {
  1317. public void actionPerformed(java.awt.event.ActionEvent evt) {
  1318. jMenuItem8ActionPerformed(evt);
  1319. }
  1320. });
  1321. jMenu5.add(jMenuItem8);
  1322. jMenuItem22.setText(bundle.getString("MPView.jMenuItem22.text")); // NOI18N
  1323. jMenuItem22.setName("jMenuItem22"); // NOI18N
  1324. jMenuItem22.addActionListener(new java.awt.event.ActionListener() {
  1325. public void actionPerformed(java.awt.event.ActionEvent evt) {
  1326. jMenuItem22ActionPerformed(evt);
  1327. }
  1328. });
  1329. jMenu5.add(jMenuItem22);
  1330. jMenu4.add(jMenu5);
  1331. jMenu10.setText(bundle.getString("MPView.jMenu10.text")); // NOI18N
  1332. jMenu10.setName("jMenu10"); // NOI18N
  1333. jMenuItem20.setText(bundle.getString("MPView.jMenuItem20.text")); // NOI18N
  1334. jMenuItem20.setName("jMenuItem20"); // NOI18N
  1335. jMenuItem20.addActionListener(new java.awt.event.ActionListener() {
  1336. public void actionPerformed(java.awt.event.ActionEvent evt) {
  1337. jMenuItem20ActionPerformed(evt);
  1338. }
  1339. });
  1340. jMenu10.add(jMenuItem20);
  1341. jMenuItem21.setText(bundle.getString("MPView.jMenuItem21.text")); // NOI18N
  1342. jMenuItem21.setName("jMenuItem21"); // NOI18N
  1343. jMenuItem21.addActionListener(new java.awt.event.ActionListener() {
  1344. public void actionPerformed(java.awt.event.ActionEvent evt) {
  1345. jMenuItem21ActionPerformed(evt);
  1346. }
  1347. });
  1348. jMenu10.add(jMenuItem21);
  1349. jMenu4.add(jMenu10);
  1350. jMenu11.setText(bundle.getString("MPView.jMenu11.text")); // NOI18N
  1351. jMenu11.setName("jMenu11"); // NOI18N
  1352. jMenuItem26.setText(bundle.getString("MPView.jMenuItem26.text"));