+/*\r
+ * CID.java\r
+ **\r
+ * Copyright 2001 TJ, All rights reserved\r
+ *\r
+ * This software is protected by Copyright, Patent and Trademark rights.\r
+ * Use & disclosure is subject to licence terms.\r
+ *\r
+ * *** IN CONFIDENCE ***\r
+ * \r
+ * Created on 08 October 2001, 19:08\r
+ * $Header: /VisTA/CID/CID.java 11 12/11/01 3:07 Tj $\r
+ * \r
+ * $History: CID.java $\r
+ * \r
+ * ***************** Version 11 *****************\r
+ * User: Tj Date: 12/11/01 Time: 3:07\r
+ * Updated in $/VisTA/CID\r
+ * Made setLookAndFeel() and it's ItemStateListener part of CID, not an\r
+ * inner class. Added new Help window options and supporting logic\r
+ * \r
+ * ***************** Version 10 *****************\r
+ * User: Tj Date: 11/11/01 Time: 4:09\r
+ * Updated in $/VisTA/CID\r
+ * Testing HTML Help service\r
+ * \r
+ * ***************** Version 9 *****************\r
+ * User: Tj Date: 11/11/01 Time: 0:08\r
+ * Updated in $/VisTA/CID\r
+ * Merged Constructors\r
+ * \r
+ * ***************** Version 8 *****************\r
+ * User: Tj Date: 10/11/01 Time: 17:04\r
+ * Updated in $/VisTA/CID\r
+ * Added Java version checking to Constructor\r
+ * \r
+ * ***************** Version 7 *****************\r
+ * User: Tj Date: 10/11/01 Time: 2:21\r
+ * Updated in $/VisTA/CID\r
+ * Adjustments to Slider widths - more to come; requires dynamic slider\r
+ * resizing\r
+ * \r
+ * ***************** Version 6 *****************\r
+ * User: Tj Date: 9/11/01 Time: 19:21\r
+ * Updated in $/VisTA/CID\r
+ * Added Help window logic\r
+ * \r
+ * ***************** Version 5 *****************\r
+ * User: Tj Date: 8/11/01 Time: 19:55\r
+ * Updated in $/VisTA/CID\r
+ * Tested, OK\r
+ * \r
+ * ***************** Version 4 *****************\r
+ * User: Tj Date: 7/11/01 Time: 22:36\r
+ * Updated in $/VisTA/CID\r
+ * Added final(ish) layout, filter and template visual controls and icons\r
+ * \r
+ * ***************** Version 3 *****************\r
+ * User: Tj Date: 31/10/01 Time: 5:12\r
+ * Updated in $/VisTA/CID\r
+ * Added VSS header\r
+ */\r
+package org.tjworld.vista.cid;\r
+\r
+import java.awt.Color;\r
+import java.awt.Component;\r
+import java.awt.Container;\r
+import java.awt.Cursor;\r
+import java.awt.Dimension;\r
+import java.awt.Frame;\r
+import java.awt.Graphics;\r
+import java.awt.Graphics2D;\r
+import java.awt.Insets;\r
+import java.awt.Point;\r
+import java.awt.Toolkit;\r
+\r
+import java.awt.event.ActionEvent;\r
+import java.awt.event.ItemListener;\r
+import java.awt.event.KeyEvent;\r
+\r
+import java.awt.geom.AffineTransform;\r
+\r
+import java.awt.image.AffineTransformOp;\r
+import java.awt.image.BufferedImage;\r
+\r
+import java.awt.print.PageFormat;\r
+import java.awt.print.Printable;\r
+import java.awt.print.PrinterException;\r
+import java.awt.print.PrinterJob;\r
+\r
+import java.io.IOException;\r
+import java.net.URL;\r
+import java.net.MalformedURLException;\r
+import java.text.MessageFormat;\r
+import java.util.Locale;\r
+\r
+import javax.swing.AbstractButton;\r
+import javax.swing.Action;\r
+import javax.swing.ButtonGroup;\r
+import javax.swing.ImageIcon;\r
+import javax.swing.JComponent;\r
+import javax.swing.JLabel;\r
+import javax.swing.JMenu;\r
+import javax.swing.JOptionPane;\r
+import javax.swing.JRadioButtonMenuItem;\r
+import javax.swing.KeyStroke;\r
+import javax.swing.SwingUtilities;\r
+import javax.swing.UIManager;\r
+import javax.swing.UnsupportedLookAndFeelException;\r
+\r
+import javax.swing.event.ChangeEvent;\r
+import javax.swing.event.ChangeListener;\r
+\r
+import javax.swing.tree.DefaultMutableTreeNode;\r
+import javax.swing.tree.DefaultTreeModel;\r
+\r
+import org.tjworld.vista.cid.*;\r
+import org.tjworld.components.*;\r
+\r
+/** CID - Colour Imbalance Discovery<br/>\r
+ *\r
+ * CID automates and aids the process of discovering the best combination of colour and\r
+ * tint in order to reduce or eliminate the symptoms of what is known as \r
+ * Meares-Irlen Syndrome, Irlen Syndrome or Scotopic Sensitivity Syndrome.\r
+ *\r
+ * This syndrome causes visual perception distortions that in sufferers causes text and certain\r
+ * patterns to appear to be moving, shimmering, fading or flickering.\r
+ *\r
+ * It has been found that as well as improving the reading experience and speed, especially in\r
+ * children with learning difficulties, filters will also reduce various types of reported\r
+ * eye stress and headaches.\r
+ *\r
+ * The headaches appear to be linked to photo-sensitive epilepsy and certain close-packed patterns\r
+ * cause the same reaction as text in some people.\r
+ * \r
+ * @author TJ\r
+ * @version 1.1 21 Oct 2001 Filter (Template & Window), Look & Feel, Toolbar popup menu\r
+ * version 1.0 10 Oct 2001 Primary Design\r
+ */\r
+public class CID extends javax.swing.JFrame implements Printable, ItemListener {\r
+ /** Controls developers extended reporting to the console\r
+ * true = additional reporting to the console\r
+ * false = no reporting to the console (use this state for Release Versions of CID)\r
+ */\r
+ private boolean debugging = true;\r
+ \r
+ /** When non-null usually indicates an Applet, that provides load & save services.\r
+ * When null, CID uses own (application) services for loading & saving\r
+ */\r
+ private java.applet.Applet parent;\r
+ \r
+ /** Locale requested by the user */\r
+ private java.util.Locale currentLocale;\r
+ \r
+ /** Locale-specific data container */\r
+ private java.util.ResourceBundle cIDresources;\r
+ \r
+ // menu bar radio-button groups for mutually exclusive mode selections\r
+ private ButtonGroup mbgModelAlgorithm;\r
+ private ButtonGroup mbgModelEyes;\r
+ private ButtonGroup mbgTemplate;\r
+ private ButtonGroup mbgColourModel;\r
+ private ButtonGroup mbgColourView;\r
+ private ButtonGroup mbgDirection;\r
+ private ButtonGroup mbgLanguage;\r
+ private ButtonGroup mbgConnection;\r
+ private ButtonGroup mbgPlayback;\r
+ private ButtonGroup mbgFilter;\r
+ private ButtonGroup mbgLandF;\r
+\r
+ // tool bar toggle-button groups for mutually exclusive mode selections\r
+ private ButtonGroup tbgModelAlgorithm;\r
+ private ButtonGroup tbgModelEyes;\r
+ private ButtonGroup tbgTemplate;\r
+ private ButtonGroup tbgColourModel;\r
+ private ButtonGroup tbgColourView;\r
+ private ButtonGroup tbgDirection;\r
+ private ButtonGroup tbgLanguage;\r
+ private ButtonGroup tbgConnection;\r
+ private ButtonGroup tbgPlayback;\r
+ \r
+ /** frame's small icon */\r
+ private javax.swing.ImageIcon icVista;\r
+ \r
+ /** collection of icon-pairs for active & dimmed icons */\r
+ private java.util.Vector vToolIcons;\r
+ \r
+ /** default glass pane before being replaced by VisTA filter */\r
+ private Component defaultGlassPane;\r
+ \r
+ /** printjob */\r
+ PrinterJob printJob = null;;\r
+ \r
+ /** printjob page format */\r
+ PageFormat pageFormat = null;;\r
+ \r
+ // actions shared by menu items & tool bar buttons\r
+ private Action aNew;\r
+ private Action aOpen;\r
+ private Action aSave;\r
+ private Action aSaveAs;\r
+ private Action aDelete;\r
+ private Action aSendToVistaDB;\r
+ private Action aToCookie;\r
+ private Action aFromCookie;\r
+ private Action aCreateFilter;\r
+ private Action aToVistaPage;\r
+ private Action aPageSetup;\r
+ private Action aPrint;\r
+ private Action aProperties;\r
+ private Action a1_Up;\r
+ private Action a2_Up;\r
+ private Action aAlternate;\r
+ private Action aBothEyes;\r
+ private Action aSeparateEyes;\r
+ private Action aReading;\r
+ private Action aPatterns;\r
+ private Action aImages;\r
+ private Action aRGB;\r
+ private Action aHSB;\r
+ private Action aCYMK;\r
+ private Action aWheel;\r
+ private Action aTriangle;\r
+ private Action aQube;\r
+ private Action aColorChooser;\r
+ private Action aSwatches;\r
+ private Action aManual;\r
+ private Action aAuto;\r
+ private Action aDirected;\r
+ private Action aScript;\r
+ private Action aConnect;\r
+ private Action aDisconnect;\r
+ private Action aPlay;\r
+ private Action aRecord;\r
+ private Action aPause;\r
+ private Action aStop;\r
+ private Action aFilterTemplate;\r
+ private Action aFilterWindow;\r
+ private Action aFilterScreen;\r
+ private Action aDynamicVista;\r
+ private Action aLanguageDefault;\r
+ private Action aLanguageBritish;\r
+ private Action aLanguageFrench;\r
+ private Action aLanguageSpanish;\r
+ private Action aLanguageGerman;\r
+ private Action aLanguageArabicEgypt;\r
+ private Action aLanguageFarsiIran;\r
+ private Action aLanguageHindiIndia;\r
+ private Action aLanguageIndonesian;\r
+ private Action aLanguageJapanese;\r
+ private Action aLanguageDutch;\r
+ private Action aLanguagePashto;\r
+ private Action aLanguagePortuguese;\r
+ private Action aLanguageRussian;\r
+ private Action aLanguageSwedish;\r
+ private Action aLanguageUrdu;\r
+ private Action aLanguageChinese;\r
+ private Action aHelpContents;\r
+ private Action aHelpSearch;\r
+ private Action aHelpWeb;\r
+ \r
+ // icon index constants\r
+ static final int IC_NEW = 0; // Profile menu\r
+ static final int IC_OPEN_FILE = 1;\r
+ static final int IC_SAVE = 2;\r
+ static final int IC_SAVE_AS = 3;\r
+ static final int IC_SEND_TO_VISTA_DB = 4;\r
+ static final int IC_TO_COOKIE = 5;\r
+ static final int IC_FROM_COOKIE = 6;\r
+ static final int IC_CREATE_FILTER = 7;\r
+ static final int IC_TO_VISTA_PAGE = 8;\r
+ static final int IC_PAGE_SETUP = 9;\r
+ static final int IC_PRINT = 10;\r
+ static final int IC_PROPERTIES = 11;\r
+\r
+ static final int IC_1UP = 12; // Model menu\r
+ static final int IC_2UP = 13;\r
+ static final int IC_ALTERNATE = 14;\r
+ static final int IC_BOTH_EYES = 15;\r
+ static final int IC_SEPARATE_EYES = 16;\r
+\r
+ static final int IC_READING = 17; // Template menu\r
+ static final int IC_PATTERNS = 18;\r
+ static final int IC_IMAGES = 81; // recent addition\r
+\r
+ static final int IC_RGB = 19; // Colour menu\r
+ static final int IC_HSB = 20;\r
+ static final int IC_CYMK = 21;\r
+ static final int IC_WHEEL = 22;\r
+ static final int IC_TRIANGLE = 23;\r
+ static final int IC_QUBE = 24;\r
+ static final int IC_COLOR_CHOOSER = 25;\r
+ \r
+ static final int IC_MANUAL = 26; // Director menu\r
+ static final int IC_AUTO = 27;\r
+ static final int IC_DIRECTED = 28;\r
+ static final int IC_SCRIPT = 29;\r
+\r
+ static final int IC_OPTION_CONFIG_READING = 30; // Options menu\r
+ static final int IC_OPTION_CONFIG_PATTERNS = 31;\r
+ static final int IC_OPTION_CONFIG_DIRECTED = 32;\r
+ static final int IC_OPTION_CONFIG_SCRIPT = 33;\r
+ static final int IC_OPTION_CONFIG_VISTA_DB = 34;\r
+ static final int IC_OPTION_CHOOSE = 35;\r
+ static final int IC_OPTION_CUSTOMIZE = 36;\r
+ static final int IC_OPTION_PREFERENCES = 37;\r
+ \r
+ static final int IC_CONNECT = 38;\r
+ static final int IC_PAUSE = 39;\r
+ static final int IC_DISCONNECT = 40;\r
+ \r
+ static final int IC_OPTION_DYNAMIC_VISTA = 41;\r
+\r
+ static final int IC_HELP_CONTENTS = 42; // Help menu\r
+ static final int IC_HELP_INDEX = 43;\r
+ static final int IC_HELP_SEARCH = 44;\r
+ static final int IC_HELP_EXPLAIN = 45;\r
+ static final int IC_HELP_ABOUT = 46;\r
+ static final int IC_HELP_WEB = 47;\r
+\r
+ static final int IC_PROFILE = 48; // Menu titles\r
+ static final int IC_MODEL = 49;\r
+ static final int IC_TEMPLATE = 50;\r
+ static final int IC_COLOUR = 51;\r
+ static final int IC_OPTIONS = 52;\r
+ static final int IC_HELP = 53;\r
+\r
+ static final int IC_PLAY = 54;\r
+ static final int IC_STOP = 55;\r
+\r
+ static final int IC_LANGUAGE = 56;\r
+ static final int IC_LANG_DEFAULT = 57;\r
+ static final int IC_LANG_BRITISH = 58;\r
+ static final int IC_LANG_FRENCH = 59;\r
+ static final int IC_LANG_SPANISH = 60;\r
+ static final int IC_LANG_GERMAN = 61;\r
+ \r
+ static final int IC_SWATCHES = 62; // late addition\r
+ static final int IC_FILTER_TEMPLATE = 63;\r
+ static final int IC_FILTER_WINDOW = 64;\r
+ static final int IC_FILTER_SCREEN = 65;\r
+ static final int IC_PROFILE_DELETE = 66;\r
+ static final int IC_RECORD = 67;\r
+ static final int IC_OPTION_CONFIG_SWATCHES = 68;\r
+ \r
+ static final int IC_LANG_AR_EG = 69; // more languages\r
+ static final int IC_LANG_FA_IR = 70;\r
+ static final int IC_LANG_HI_IN = 71;\r
+ static final int IC_LANG_IN = 72;\r
+ static final int IC_LANG_JA = 73;\r
+ static final int IC_LANG_NL = 74;\r
+ static final int IC_LANG_PS = 75;\r
+ static final int IC_LANG_PT = 76;\r
+ static final int IC_LANG_RU = 77;\r
+ static final int IC_LANG_SV = 78;\r
+ static final int IC_LANG_UR = 79;\r
+ static final int IC_LANG_ZH = 80;\r
+\r
+ // always make this the next (and highest) value, to indicate the icon-store Vector size\r
+ static final int IC_MAX = 82;\r
+\r
+ // VisTA Filter choices\r
+ static final int FILTER_TEMPLATE = 1;\r
+ static final int FILTER_WINDOW = 2;\r
+ static final int FILTER_SCREEN = 3;\r
+\r
+ /** tracks previous VisTA filter to ensure clean switching from one to another */ \r
+ private int activeFilter;\r
+\r
+ // dimension used by all tool bar buttons\r
+ static final java.awt.Dimension toolButtonSize = new java.awt.Dimension(22,22);\r
+ \r
+ // dimension used by all status icons\r
+ static final java.awt.Dimension statusIconButtonSize = new java.awt.Dimension(16, 16);\r
+\r
+ static org.tjworld.vista.cid.CID frameCID;\r
+\r
+ /** Popup menu for tool bar button group selection, shared with the JMenu of the frame */\r
+ private javax.swing.JPopupMenu toolBarPopup;\r
+\r
+ /** Popup called directly from tool bar? */\r
+ private boolean showToolbarPopup = false;\r
+\r
+ /** about-dialog form */\r
+ private CIDAbout aboutDialog = null;\r
+ \r
+ /** help window */\r
+ private xhtmlHelp helpWindow = null;\r
+\r
+ /** help window location */\r
+ private Point helpLocation = null;\r
+ \r
+ /** system file chooser form */\r
+ private CIDFileChooser cidFileChooserDialog = null;\r
+ \r
+ /** root of the Help Contents tree */\r
+ private DefaultMutableTreeNode helpContentsRootNode = null;\r
+ \r
+ /** root of the Help Index tree */\r
+ private DefaultMutableTreeNode helpIndexRootNode = null;\r
+\r
+ /** VisTA colourized transparent filter pane */\r
+ private VistaFilter vfFilter;\r
+ \r
+ /** Printing thread */\r
+ // Thread prt;\r
+ \r
+ /** Creates new form CID with a parent<br/>\r
+ * This constructor receives a reference to a parent container applet, such that when \r
+ * launched from an applet it is able to use applet methods to enquire about it's environment\r
+ * and adopt suitable security and access control behaviour for opening, saving, and accessing\r
+ * VisTA.Web profiles and other resources.\r
+ *\r
+ * @param parent Component that owns this CID. Usually an <code>Applet</code> descendent.\r
+ * @see #CID()\r
+ */\r
+ public CID(java.applet.Applet parent) {\r
+ this.parent = parent;\r
+\r
+ // get the best set of resources for the system locale\r
+ currentLocale = java.util.Locale.getDefault();\r
+ /*** At a later stage, need to override this from a user's preferences */\r
+ \r
+ /* get the locale-specific set of resources before creating any\r
+ * User Interface components that require locale-specifc text labels\r
+ * or messages */\r
+ loadLocale(currentLocale);\r
+\r
+ // make sure this is Java 1.4 or later\r
+ String version = System.getProperty("java.version");\r
+ float majorVersion = 0;\r
+ float minorVersion = 0;\r
+ try {\r
+ majorVersion = Float.parseFloat(version.substring(0, 3));\r
+ minorVersion = Float.parseFloat(version.substring(4, 5));\r
+ } catch(NumberFormatException e) {\r
+ System.err.println("Unable to understand java.version (" + version + ")");\r
+ }\r
+ if(majorVersion < 1.4f) { // report version requirement to the user\r
+ System.err.println("java.version=" + version + "\nmajorVersion=" + majorVersion + "\nminorVersion=" + minorVersion);\r
+\r
+ // now build a locale-sensitive resource-bundle compound message\r
+ MessageFormat mf = new MessageFormat(cIDresources.getString("tVerDlgMsg"), currentLocale);\r
+ String message = mf.format(new Object[] { version } );\r
+\r
+ // display a modal error dialog\r
+ JOptionPane.showMessageDialog(null, message, cIDresources.getString("tVerDlgTitle"), JOptionPane.ERROR_MESSAGE);\r
+ \r
+ System.exit(1); // stop now\r
+ }\r
+ /* don't use the Host window decoration if at all possible\r
+ * Must do this before the frame becomes Displayable\r
+ * (by a call to pack() or show() )\r
+ */\r
+ if(UIManager.getLookAndFeel().getSupportsWindowDecorations()) {\r
+ setUndecorated(true); // first Java 1.4 specific action\r
+ getRootPane().setWindowDecorationStyle(javax.swing.JRootPane.FRAME);\r
+ }\r
+ \r
+ // init() can throw MalformedURLExceptions when looking for it's Icons and such\r
+ try {init(); } catch(Exception e) {e.printStackTrace(); }\r
+ }\r
+ \r
+\r
+ /** Creates new CID form without parent<br/>\r
+ * The default constructor creates the VisTA.CID user interface. Sets <code>parent</code> to <code>null</code>,\r
+ * indicating that it owns itself - in other words, it's an application and must rely on it's own\r
+ * services for loading and saving files.\r
+ */\r
+ public CID() {\r
+ this(null);\r
+ }\r
+\r
+ /** Load a new locale-specific resource bundle\r
+ *\r
+ * @param loc The Locale whose resource bundle is required\r
+ */\r
+ void loadLocale(Locale loc) {\r
+ cIDresources = java.util.ResourceBundle.getBundle("org.tjworld.vista.cid.CIDresources", loc);\r
+ }\r
+\r
+ /** Dynamically change the current locale for all the locale-sensitive objects in the frame\r
+ *\r
+ * @param loc The new Locale\r
+ */\r
+ void changeLocale(Locale loc) {\r
+ if(currentLocale != loc) { // don't update unless a real change is required (not default to British when 'en' is already selected, for example )\r
+ loadLocale(loc); // alternate resource bundle if possible\r
+\r
+ setComponentLocale((Component)this, loc);\r
+ \r
+ //*** needs writing:- setActionLocales();\r
+ pack(); // re-layout to use optimum space - changes in text sizes might cause resizing of many components\r
+ \r
+ currentLocale = loc; // keep track of which locale is active\r
+ \r
+ if(helpWindow != null) // ensure the Help Pages also switch to the new locale\r
+ helpWindow.setPageLocale(currentLocale);\r
+ }\r
+ }\r
+ \r
+ /** Recursive method that updates Locale and Locale-sensitive text\r
+ * of all child components & containers.\r
+ *\r
+ * Algorithm is flexible:-\r
+ *\r
+ * Component.name = ResourceBundle.BaseKeyNameFragment\r
+ * BaseKeyNameFragment + "Name" gives ke namevalue for setText()\r
+ * BaseKeyNameFragment + "Tip" gives value for setToolTipText()\r
+ * BaseKeyNameFragment + "Title" gives value for setTitle()\r
+ *\r
+ * Every Component.locale is updated\r
+ * If Component.name == null no update to the values is attempted\r
+ * If a text, toolTipText, or title value == null, no update is attempted\r
+ *\r
+ * If Component is also a Container, every child is also passed into recursive calls\r
+ * to this method.\r
+ * \r
+ * @param c The Component to update\r
+ * @param loc The new Locale\r
+ */\r
+ void setComponentLocale(Component c, Locale loc) {\r
+ if(c != null && loc != null && (c instanceof Component)) { // okay so far\r
+ c.setLocale(loc); // change the locale\r
+ if(debugging) System.out.println("Locale update for " + c.getClass().getName());\r
+ \r
+ if(c.getName() != null) { // I store the resource bundle Key in the component's name attribute\r
+ if(c instanceof java.awt.Frame) { // window frame, no Text but a Title\r
+ if(((Frame)c).getTitle() != null) // don't set title unless it already has one\r
+ ((Frame)c).setTitle(cIDresources.getString(c.getName() + "Title")); // set the title\r
+ }\r
+ \r
+ if(c instanceof javax.swing.AbstractButton) { // able to set Text\r
+ if(((AbstractButton)c).getText() != null) // don't set text for components without any already\r
+ ((AbstractButton)c).setText(cIDresources.getString(c.getName() + "Name")); // set the text\r
+\r
+ /* Update the component's PowerAction locale, if it has an associated PowerAction instead\r
+ * of a regular Action.\r
+ *\r
+ * The AbstractButton (JMenuItem or JToggleButton/JButton will have registered itself as a \r
+ * PropertyChangeListener on the PowerAction when JComponent.add(Action) was called,\r
+ * so when PowerAction alters any of it's key/value pairs, the underlying Action.putValue()\r
+ * will fire a property change event to the JComponent(s) using the Action, \r
+ * which should cause them to update their Locale-sensitive values\r
+ */\r
+ Action a = null;\r
+ PowerAction pa;\r
+ if((a = ((AbstractButton)c).getAction()) != null) { // has an action attached...\r
+ if(a instanceof PowerAction) { // ... might be locale-sensitive\r
+ pa = (PowerAction)a; // easier to handle\r
+ \r
+ /* must turn off the PowerAction's change notifications while it updates itself,\r
+ * else any tool bar button will have it's Text and Mnemonic properties set\r
+ * when we want them keeping clear.\r
+ * They were specifically cleared in CID.init()\r
+ */\r
+ long mask = PowerAction.MASK_ALL;\r
+ pa.setPropertyChangeMask(mask); \r
+ pa.setLocale(loc, cIDresources); // change it's Locale\r
+ pa.setPropertyChangeMask(PowerAction.MASK_ALL);\r
+ }\r
+ } \r
+ }\r
+\r
+ if(c instanceof javax.swing.JComponent) { // might have a tool tip too\r
+ if(((JComponent)c).getToolTipText() != null) //don't set a tip for components without it already\r
+ ((JComponent)c).setToolTipText(cIDresources.getString(c.getName() + "Tip")); // set the tip\r
+\r
+ JComponent cb = (JComponent) c; // cast to make for less typing!\r
+ if(cb.getBorder() != null) { // has a border, which might have a title attached...\r
+ if(cb.getBorder() instanceof javax.swing.border.TitledBorder) { // it does, so maybe there's something to change\r
+ if(((javax.swing.border.TitledBorder)cb.getBorder()).getTitle() != null) // better change it\r
+ ((javax.swing.border.TitledBorder)cb.getBorder()).setTitle(cIDresources.getString(c.getName() + "Title"));\r
+ }\r
+ }\r
+\r
+ if(c instanceof javax.swing.JLabel) { // instructive text?\r
+ if(((JLabel)c).getText() != null) // switch the text\r
+ ((JLabel)c).setText(cIDresources.getString(c.getName()));\r
+ }\r
+ }\r
+ }\r
+\r
+ // now deal with Containers that might have children\r
+ if(c instanceof Container) { // might have child components that need updating\r
+ Component child[];\r
+ if(c instanceof javax.swing.JMenu) // have to use a different method() for JMenus...\r
+ child = ((JMenu)c).getMenuComponents();\r
+ else\r
+ child = ((Container)c).getComponents(); // an array of all children\r
+ \r
+ for(int i = 0; i < child.length; i++) // do all the children too\r
+ setComponentLocale(child[i], loc); // recursively call this method to update children\r
+ }\r
+ }\r
+ }\r
+ \r
+ /** Initialize the application */\r
+ private void init() throws MalformedURLException {\r
+ // set the static member so Cursors can be exchanged when L&F is being changed\r
+ frameCID = this;\r
+\r
+ // let the user know CID is loading\r
+ splash splash = new splash(this, cIDresources);\r
+ splash.setVisible(true);\r
+ \r
+ /* set the file name fragments for loading the Icons & build the URL.\r
+ * Need to cope with two kinds of URL:- http: and file: - because CID\r
+ * can be run as an application from the file system, or launched as\r
+ * a frame from within an applet from a URL.\r
+ */ \r
+ String sUrl = "";\r
+ if(parent != null) // must be an applet, so use it's codebase\r
+ sUrl = parent.getCodeBase().toString();\r
+ else // it's an application so use the current working directory (where CID.class is executing from)\r
+ sUrl = "file://" + System.getProperty("user.dir") + "/";\r
+ sUrl = sUrl + "org/tjworld/vista/cid/"; // base URL\r
+ String ext = ".gif"; // standard file extension\r
+ String dimmed = "dim"; // name-prefix for dimmed versions of icons\r
+ String n;\r
+ URL baseURL = new URL(sUrl); // the base URL\r
+ URL u = new URL(sUrl + "media/"); // the media URL\r
+ vToolIcons = new java.util.Vector(); // the icon-pairs container\r
+ vToolIcons.setSize(IC_MAX);\r
+\r
+ // these statements ***MUST*** be in ascending order (of index number) else initComponents() will throw NullPointerExceptions!!!\r
+ vToolIcons.add(IC_NEW, new ToolIconPair(new ImageIcon(new URL(u, (n = "new") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_OPEN_FILE, new ToolIconPair(new ImageIcon(new URL(u, (n = "openFile") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_SAVE, new ToolIconPair(new ImageIcon(new URL(u, (n = "save") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_SAVE_AS, new ToolIconPair(new ImageIcon(new URL(u, (n = "saveAs") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_SEND_TO_VISTA_DB, new ToolIconPair(new ImageIcon(new URL(u, (n = "vistaOnline") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_TO_COOKIE, new ToolIconPair(new ImageIcon(new URL(u, (n = "toCookie") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_FROM_COOKIE, new ToolIconPair(new ImageIcon(new URL(u, (n = "fromCookie") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_CREATE_FILTER, new ToolIconPair(new ImageIcon(new URL(u, (n = "createFilter") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_TO_VISTA_PAGE, new ToolIconPair(new ImageIcon(new URL(u, (n = "vistaWebPage") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_PAGE_SETUP, new ToolIconPair(new ImageIcon(new URL(u, (n = "pageSetup") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_PRINT, new ToolIconPair(new ImageIcon(new URL(u, (n = "print") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_PROPERTIES, new ToolIconPair(new ImageIcon(new URL(u, (n = "properties") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+\r
+ vToolIcons.add(IC_1UP, new ToolIconPair(new ImageIcon(new URL(u, (n = "1up") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_2UP, new ToolIconPair(new ImageIcon(new URL(u, (n = "2up") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_ALTERNATE, new ToolIconPair(new ImageIcon(new URL(u, (n = "alternate") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_BOTH_EYES, new ToolIconPair(new ImageIcon(new URL(u, (n = "eyes2") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_SEPARATE_EYES, new ToolIconPair(new ImageIcon(new URL(u, (n = "eyes1") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+\r
+ vToolIcons.add(IC_READING, new ToolIconPair(new ImageIcon(new URL(u, (n = "reading") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_PATTERNS, new ToolIconPair(new ImageIcon(new URL(u, (n = "patterns") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+\r
+ vToolIcons.add(IC_RGB, new ToolIconPair(new ImageIcon(new URL(u, (n = "rgb") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_HSB, new ToolIconPair(new ImageIcon(new URL(u, (n = "hsb") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_CYMK, new ToolIconPair(new ImageIcon(new URL(u, (n = "cymk") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_WHEEL, new ToolIconPair(new ImageIcon(new URL(u, (n = "wheel") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_TRIANGLE, new ToolIconPair(new ImageIcon(new URL(u, (n = "triangle") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_QUBE, new ToolIconPair(new ImageIcon(new URL(u, (n = "qube") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_COLOR_CHOOSER, new ToolIconPair(new ImageIcon(new URL(u, (n = "sysColour") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+\r
+ vToolIcons.add(IC_MANUAL, new ToolIconPair(new ImageIcon(new URL(u, (n = "manual") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_AUTO, new ToolIconPair(new ImageIcon(new URL(u, (n = "auto") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_DIRECTED, new ToolIconPair(new ImageIcon(new URL(u, (n = "directed") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_SCRIPT, new ToolIconPair(new ImageIcon(new URL(u, (n = "script") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+\r
+ vToolIcons.add(IC_OPTION_CONFIG_READING, new ToolIconPair(new ImageIcon(new URL(u, (n = "reading") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_OPTION_CONFIG_PATTERNS, new ToolIconPair(new ImageIcon(new URL(u, (n = "patterns") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_OPTION_CONFIG_DIRECTED, new ToolIconPair(new ImageIcon(new URL(u, (n = "directed") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_OPTION_CONFIG_SCRIPT, new ToolIconPair(new ImageIcon(new URL(u, (n = "script") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_OPTION_CONFIG_VISTA_DB, new ToolIconPair(new ImageIcon(new URL(u, (n = "vistaOnline") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+\r
+ vToolIcons.add(IC_OPTION_CHOOSE, new ToolIconPair(new ImageIcon(new URL(u, (n = "openFile") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_OPTION_CUSTOMIZE, new ToolIconPair(new ImageIcon(new URL(u, (n = "customize") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_OPTION_PREFERENCES, new ToolIconPair(new ImageIcon(new URL(u, (n = "preferences") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+\r
+ vToolIcons.add(IC_CONNECT, new ToolIconPair(new ImageIcon(new URL(u, (n = "connect") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_PAUSE, new ToolIconPair(new ImageIcon(new URL(u, (n = "pause") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_DISCONNECT, new ToolIconPair(new ImageIcon(new URL(u, (n = "disconnect") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+\r
+ vToolIcons.add(IC_OPTION_DYNAMIC_VISTA, new ToolIconPair(new ImageIcon(new URL(u, (n = "vistaWebPage") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+\r
+ vToolIcons.add(IC_HELP_CONTENTS, new ToolIconPair(new ImageIcon(new URL(u, (n = "help") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_HELP_INDEX, new ToolIconPair(new ImageIcon(new URL(u, (n = "index") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_HELP_SEARCH, new ToolIconPair(new ImageIcon(new URL(u, (n = "helpsearch") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_HELP_EXPLAIN, new ToolIconPair(new ImageIcon(new URL(u, (n = "explain") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_HELP_ABOUT, new ToolIconPair(new ImageIcon(new URL(u, (n = "about") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_HELP_WEB, new ToolIconPair(new ImageIcon(new URL(u, (n = "webHelpLink") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_HELP, new ToolIconPair(new ImageIcon(new URL(u, (n = "help") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+\r
+ vToolIcons.add(IC_PLAY, new ToolIconPair(new ImageIcon(new URL(u, (n = "play") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_STOP, new ToolIconPair(new ImageIcon(new URL(u, (n = "stop") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+\r
+ vToolIcons.add(IC_LANGUAGE, new ToolIconPair(new ImageIcon(new URL(u, (n = "language") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_LANG_DEFAULT, new ToolIconPair(new ImageIcon(new URL(u, (n = "language") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_LANG_BRITISH, new ToolIconPair(new ImageIcon(new URL(u, (n = "british") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_LANG_FRENCH, new ToolIconPair(new ImageIcon(new URL(u, (n = "french") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_LANG_SPANISH, new ToolIconPair(new ImageIcon(new URL(u, (n = "spanish") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_LANG_GERMAN, new ToolIconPair(new ImageIcon(new URL(u, (n = "german") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+\r
+ vToolIcons.add(IC_SWATCHES, new ToolIconPair(new ImageIcon(new URL(u, (n = "swatches") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_FILTER_TEMPLATE, new ToolIconPair(new ImageIcon(new URL(u, (n = "fltTmpl") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_FILTER_WINDOW, new ToolIconPair(new ImageIcon(new URL(u, (n = "fltWin") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_FILTER_SCREEN, new ToolIconPair(new ImageIcon(new URL(u, (n = "fltScr") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_PROFILE_DELETE, new ToolIconPair(new ImageIcon(new URL(u, (n = "delete") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_RECORD, new ToolIconPair(new ImageIcon(new URL(u, (n = "record") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_OPTION_CONFIG_SWATCHES, new ToolIconPair(new ImageIcon(new URL(u, (n = "swatches") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+\r
+ vToolIcons.add(IC_LANG_AR_EG, new ToolIconPair(new ImageIcon(new URL(u, (n = "egypt") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_LANG_FA_IR, new ToolIconPair(new ImageIcon(new URL(u, (n = "iran") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_LANG_HI_IN, new ToolIconPair(new ImageIcon(new URL(u, (n = "india") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_LANG_IN, new ToolIconPair(new ImageIcon(new URL(u, (n = "indonesia") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_LANG_JA, new ToolIconPair(new ImageIcon(new URL(u, (n = "japan") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_LANG_NL, new ToolIconPair(new ImageIcon(new URL(u, (n = "netherlands") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_LANG_PS, new ToolIconPair(new ImageIcon(new URL(u, (n = "afghanistan") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_LANG_PT, new ToolIconPair(new ImageIcon(new URL(u, (n = "portugal") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_LANG_RU, new ToolIconPair(new ImageIcon(new URL(u, (n = "russia") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_LANG_SV, new ToolIconPair(new ImageIcon(new URL(u, (n = "sweden") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_LANG_UR, new ToolIconPair(new ImageIcon(new URL(u, (n = "pakistan") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+ vToolIcons.add(IC_LANG_ZH, new ToolIconPair(new ImageIcon(new URL(u, (n = "china") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+\r
+ vToolIcons.add(IC_IMAGES, new ToolIconPair(new ImageIcon(new URL(u, (n = "images") + ext)), new ImageIcon(new URL(u, dimmed + n + ext))));\r
+\r
+ icVista = new ImageIcon(new URL(u, "vistaIcon" + ext)); // the application icon\r
+\r
+ /* must create the filter component before initComponents[] calls pack()\r
+ else sliderTintStateChanged() will cause a null pointer exception\r
+ referencing vfFilter\r
+ */\r
+ vfFilter = new VistaFilter();\r
+\r
+ // create the button groups that manage the menu and tool bar mode selectors\r
+ mbgModelAlgorithm = new ButtonGroup();\r
+ mbgModelEyes = new ButtonGroup();\r
+ mbgColourModel = new ButtonGroup();\r
+ mbgTemplate = new ButtonGroup();\r
+ mbgColourView = new ButtonGroup();\r
+ mbgDirection = new ButtonGroup();\r
+ mbgLanguage = new ButtonGroup();\r
+ mbgConnection = new ButtonGroup();\r
+ mbgPlayback = new ButtonGroup();\r
+ mbgFilter = new ButtonGroup();\r
+ mbgLandF = new ButtonGroup();\r
+ \r
+ tbgModelAlgorithm = new ButtonGroup();\r
+ tbgModelEyes = new ButtonGroup();\r
+ tbgColourModel = new ButtonGroup();\r
+ tbgTemplate = new ButtonGroup();\r
+ tbgColourView = new ButtonGroup();\r
+ tbgDirection = new ButtonGroup();\r
+ tbgLanguage = new ButtonGroup();\r
+ tbgConnection = new ButtonGroup();\r
+ tbgPlayback = new ButtonGroup();\r
+ \r
+ initActions(); // actions shared by menus and tool bar buttons\r
+ initComponents(); // create & initialize the components\r
+ \r
+ // get the PopupMenu used to choose the tool bar buttons\r
+ toolBarPopup = mOptionsToolbar.getPopupMenu();\r
+\r
+ /* All tool bar buttons require common operations performing\r
+ * Much more efficient to do it in an iteration than\r
+ * using the IDE's initComponents() method with much-repeated source code.\r
+ * \r
+ * Clear Mnemonics from all tool bar buttons to prevent\r
+ * incorrect Mnemomic/Accelerator key advertising.\r
+ * Needed because all Actions have mnemonics assigned for use in menus.\r
+ * \r
+ * Reset borderPainted to allow a seamless look\r
+ * Reset contentAreaFilled to prevent Selected buttons having their backgrounds painted\r
+ * Reset focusPainted to prevent a dotted rectangle highlighting the button under the cursor\r
+ * Standardize each button's size\r
+ * Clear the button label text\r
+ */\r
+ AbstractButton ab;\r
+ Component allButtons[];\r
+ Component allPanels[] = toolBar.getComponents(); // get all the tool bar panels\r
+ for(int p = 0; p < allPanels.length; p++) {\r
+ allButtons = ((Container)allPanels[p]).getComponents(); // get all the buttons on this panel \r
+ for(int i = 0; i < allButtons.length; i++ ) {\r
+ if(allButtons[i] instanceof AbstractButton) { // make sure this IS a button\r
+ ab = (AbstractButton)allButtons[i];\r
+ ab.setMnemonic(0);\r
+ ab.setBorderPainted(false);\r
+ ab.setContentAreaFilled(false);\r
+ ab.setFocusPainted(false);\r
+ ab.setMinimumSize(toolButtonSize);\r
+ ab.setPreferredSize(toolButtonSize);\r
+ ab.setMaximumSize(toolButtonSize);\r
+ ab.setText(null);\r
+ }\r
+ }\r
+ }\r
+ \r
+ // do the same for the status icon panel\r
+ allButtons = statusIconPanel.getComponents(); // get all the buttons\r
+ for(int i = 0; i < allButtons.length; i++) {\r
+ if(allButtons[i] instanceof AbstractButton) { // make sure this IS a button\r
+ ab = (AbstractButton)allButtons[i];\r
+ ab.setBorderPainted(false);\r
+ ab.setMargin(new java.awt.Insets(0, 0, 0, 0));\r
+ ab.setMaximumSize(statusIconButtonSize);\r
+ ab.setMinimumSize(statusIconButtonSize);\r
+ ab.setPreferredSize(statusIconButtonSize);\r
+ ab.setEnabled(false);\r
+ }\r
+ }\r
+ \r
+ pack(); // optimize size of frame - prevents toolbar panels forcing window to be ultra-wide\r
+ setLocation(getCentralScreenLocation(this)); // center on screen\r
+ \r
+ // configure the VisTA filter\r
+ vfFilter.setAlpha( ((float) sliderTint.getValue())/100 ); // transparency is a decimal between 0.0 and 1.0\r
+ vfFilter.setBackground(Color.blue); //*** might want to have this set from saved Personal Preferences later\r
+\r
+ // attach the VisTA filter to the deepest (closest) pane\r
+ filterLayerPane.add(vfFilter, javax.swing.JLayeredPane.DRAG_LAYER);\r
+\r
+ // prepare for taking over the Frame's glass pane too\r
+ defaultGlassPane = getGlassPane(); // keep track so it can be swapped in and out\r
+ vfFilter.setVisible(true);\r
+ activeFilter = FILTER_TEMPLATE; // any changes will make this the 'previous' filter\r
+\r
+ // equal initial left/right pane widths\r
+ spTemplate.setDividerLocation(spTemplate.getWidth() - spColour.getDividerLocation()); \r
+ \r
+ sysColorChooser.getSelectionModel().addChangeListener(\r
+ new ChangeListener() {\r
+ public void stateChanged(ChangeEvent e) {\r
+ sysColorChooserStateChanged(e);\r
+ }\r
+ } \r
+ );\r
+ sysColorChooser.setColor(vfFilter.getBackground()); // ensure the chooser colour matches the initial VisTA filter colour\r
+\r
+ // dynamically configure the Look-and-Feel menu\r
+ //UIChangeListener l = new UIChangeListener();\r
+ JRadioButtonMenuItem miLF;\r
+ UIManager.LookAndFeelInfo[] uiInstalled = UIManager.getInstalledLookAndFeels();\r
+ for(int i = 0; i < uiInstalled.length; i++) {\r
+ miLF = new JRadioButtonMenuItem(); // add a new radio button for each L&F\r
+ miLF.setText(uiInstalled[i].getName()); // the friendly name\r
+ miLF.setToolTipText(uiInstalled[i].getClassName()); // the full name\r
+ miLF.setSelected(UIManager.getLookAndFeel().getName() == miLF.getText()); // select the current L&F\r
+ miLF.addItemListener(this); // no Adapter, so make sure the listener method identifies the component first!\r
+ miLF.putClientProperty("ButtonGroup", "LandF"); // only way for itemStateChanged() to identify L&F events\r
+ mbgLandF.add(miLF); // add to button group\r
+ mOptionsLandF.add(miLF); // add to menu\r
+ }\r
+ // might want to offer Auxillary L&F's too?\r
+ \r
+ //** At this point, need to load and act on User configuration\r
+ \r
+ initHelp(baseURL); // prepare the Help service \r
+ \r
+ // dispose of the splash window\r
+ splash.dispose();\r
+ splash = null;\r
+ }\r
+\r
+ private void initHelp(URL baseURL) throws MalformedURLException {\r
+ // create the tree roots for the help system so they can be used in JTree constructors - can add further nodes later\r
+ helpContentsRootNode = new DefaultMutableTreeNode("VisTA.CID");\r
+ helpIndexRootNode = new DefaultMutableTreeNode("Index");\r
+\r
+ HelpIconTitledURLItem item = null;\r
+ DefaultMutableTreeNode helpCategoryNode = null;\r
+ DefaultMutableTreeNode helpPageNode = null;\r
+ \r
+ helpCategoryNode = new DefaultMutableTreeNode("Getting Started");\r
+ helpContentsRootNode.add(helpCategoryNode);\r
+ item = new HelpIconTitledURLItem("Welcome to VisTA.CID", new URL(baseURL, "default.html"), true);\r
+ helpPageNode = new DefaultMutableTreeNode(item);\r
+ helpCategoryNode.add(helpPageNode);\r
+ \r
+ helpCategoryNode = new DefaultMutableTreeNode("Using VisTA.CID");\r
+ helpContentsRootNode.add(helpCategoryNode);\r
+ helpPageNode = new DefaultMutableTreeNode("Menus");\r
+ helpCategoryNode.add(helpPageNode);\r
+ helpPageNode = new DefaultMutableTreeNode("Tool bar");\r
+ helpCategoryNode.add(helpPageNode);\r
+ helpPageNode = new DefaultMutableTreeNode("Colour controls");\r
+ helpCategoryNode.add(helpPageNode);\r
+ helpPageNode = new DefaultMutableTreeNode("Templates");\r
+ helpCategoryNode.add(helpPageNode);\r
+ helpPageNode = new DefaultMutableTreeNode("Template controls");\r
+ helpCategoryNode.add(helpPageNode);\r
+ \r
+ \r
+ // load the help window, but keep it hidden\r
+ helpWindow = new xhtmlHelp(new URL(baseURL, "help/"), currentLocale, "default.html");\r
+ helpWindow.setNavigationContentsTreeRoot(new DefaultTreeModel(helpContentsRootNode));\r
+ helpWindow.setNavigationIndexTreeRoot(new DefaultTreeModel(helpIndexRootNode));\r
+\r
+ helpWindow.setDocking(mHelpDock.isSelected()); // set the Help docking policy\r
+\r
+ if(mHelpExplain.isSelected()) {\r
+ helpWindow.setPage("helpExplain.html");\r
+ showHelp(0, true, true, true);\r
+ }\r
+ }\r
+ \r
+ /** Creates all the common actions from the resource bundle and icon pairs\r
+ * \r
+ * Note: The Mnemonic key assignments currently have no way of easily being stored\r
+ * in the resource bundles. A new class, PowerKeyEvent, will provide a public static\r
+ * method that takes a String key of the form "VK_N" and returns the int value associated\r
+ * with it by ActionEvent.\r
+ * Each assignment creates an action that is used in menu items and tool bar button initialization\r
+ * PowerAction is an extension of AbstractAction that contains ALL the Action Keys that JButton and\r
+ * JMenuItem look for when their addAction() method's are called.\r
+ */\r
+ private void initActions() {\r
+ aNew = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActNewName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_NEW)).active,\r
+ cIDresources.getString("ActNewTip"),\r
+ null, null, KeyEvent.VK_N,\r
+ KeyStroke.getKeyStroke(KeyEvent.VK_N, ActionEvent.CTRL_MASK),\r
+ currentLocale, "ActNewName", "ActNewTip", null, null, null, null)\r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ statusMessage.setText((String)aNew.getValue(Action.NAME)); \r
+ }\r
+ };\r
+\r
+ aOpen = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActOpenName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_OPEN_FILE)).active,\r
+ cIDresources.getString("ActOpenTip"),\r
+ null, null, KeyEvent.VK_O,\r
+ KeyStroke.getKeyStroke(KeyEvent.VK_O, ActionEvent.CTRL_MASK),\r
+ currentLocale, "ActOpenName", "ActOpenTip", null, null, null, null) \r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ statusMessage.setText((String)aOpen.getValue(Action.NAME));\r
+ }\r
+ };\r
+\r
+ aSave = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActSaveName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_SAVE)).active,\r
+ cIDresources.getString("ActSaveTip"),\r
+ null, null, KeyEvent.VK_S,\r
+ KeyStroke.getKeyStroke(KeyEvent.VK_S, ActionEvent.CTRL_MASK) ) \r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ statusMessage.setText((String)aSave.getValue(Action.NAME));\r
+ }\r
+ };\r
+\r
+ aSaveAs = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActSaveAsName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_SAVE_AS)).active,\r
+ cIDresources.getString("ActSaveAsTip"),\r
+ null, null, KeyEvent.VK_A, null ) \r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ statusMessage.setText((String)aSaveAs.getValue(Action.NAME));\r
+ }\r
+ };\r
+\r
+ aDelete = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActDelName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_PROFILE_DELETE)).active,\r
+ cIDresources.getString("ActDelTip"),\r
+ null, null, KeyEvent.VK_D, null ) \r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ statusMessage.setText((String)aOpen.getValue(Action.NAME));\r
+ }\r
+ };\r
+\r
+ aSendToVistaDB = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActSendToVistaName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_SEND_TO_VISTA_DB)).active,\r
+ cIDresources.getString("ActSendToVistaTip"),\r
+ null, null, KeyEvent.VK_V,\r
+ KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT, ActionEvent.CTRL_MASK)) \r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ statusMessage.setText((String)aSendToVistaDB.getValue(Action.NAME));\r
+ }\r
+ };\r
+\r
+ aToCookie = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActToCookName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_TO_COOKIE)).active,\r
+ cIDresources.getString("ActToCookTip"),\r
+ null, null, KeyEvent.VK_T, \r
+ KeyStroke.getKeyStroke(KeyEvent.VK_UP, ActionEvent.CTRL_MASK)) \r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ statusMessage.setText((String)aToCookie.getValue(Action.NAME));\r
+ }\r
+ };\r
+\r
+ aFromCookie = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActFrCookName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_FROM_COOKIE)).active,\r
+ cIDresources.getString("ActFrCookTip"),\r
+ null, null, KeyEvent.VK_C,\r
+ KeyStroke.getKeyStroke(KeyEvent.VK_DOWN, ActionEvent.CTRL_MASK)) \r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ statusMessage.setText((String)aFromCookie.getValue(Action.NAME));\r
+ }\r
+ };\r
+\r
+ aCreateFilter = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActCreFltName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_CREATE_FILTER)).active,\r
+ cIDresources.getString("ActCreFltTip"),\r
+ null, null, KeyEvent.VK_F, null ) \r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ statusMessage.setText((String)aCreateFilter.getValue(Action.NAME));\r
+ }\r
+ };\r
+\r
+ aToVistaPage = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActToVistaPageName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_TO_VISTA_PAGE)).active,\r
+ cIDresources.getString("ActToVistaPageTip"),\r
+ null, null, KeyEvent.VK_W, \r
+ KeyStroke.getKeyStroke(KeyEvent.VK_LEFT, ActionEvent.CTRL_MASK)) \r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ statusMessage.setText((String)aToVistaPage.getValue(Action.NAME));\r
+ }\r
+ };\r
+\r
+ aPageSetup = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActPageSetName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_PAGE_SETUP)).active,\r
+ cIDresources.getString("ActPageSetTip"),\r
+ null, null, KeyEvent.VK_G, null ) \r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ statusMessage.setText((String)aPageSetup.getValue(Action.NAME));\r
+ if(printJob == null) // first time, so get a new job\r
+ printJob = PrinterJob.getPrinterJob();\r
+ if(pageFormat == null) // call the Page Format dialog\r
+ pageFormat = printJob.defaultPage();\r
+ pageFormat = printJob.pageDialog(pageFormat); // remember the choosen format\r
+ }\r
+ };\r
+\r
+ aPrint = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActPrintName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_PRINT)).active,\r
+ cIDresources.getString("ActPrintTip"),\r
+ null, null, KeyEvent.VK_P, \r
+ KeyStroke.getKeyStroke(KeyEvent.VK_P, ActionEvent.CTRL_MASK) ) \r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ statusMessage.setText((String)aPrint.getValue(Action.NAME));\r
+ if(printJob == null) // if first time, get a new job\r
+ printJob = PrinterJob.getPrinterJob();\r
+ if(pageFormat != null) // use a previously chosen page format\r
+ printJob.setPrintable(frameCID, frameCID.pageFormat); // print the entire window\r
+ else // use the default page format\r
+ printJob.setPrintable(frameCID); // print the entire window\r
+ \r
+ if(printJob.printDialog()) { // only go ahead and print if the user clicks OK in the Print Setup dialog\r
+ Thread prt = new Thread() { // create a new thread for printing, so the program doesn't appear to freeze\r
+ public void run() { // called when the thread is started\r
+ try {\r
+ printJob.setJobName("VisTA.CID"); // set a friendly printer job name for the queue\r
+ frameCID.printJob.print(); // do the printing\r
+ } catch(Exception ex) {\r
+ ex.printStackTrace();\r
+ }\r
+ }\r
+ };\r
+ prt.start(); // do the printing\r
+ }\r
+ }\r
+ };\r
+\r
+ aProperties = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActPropsName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_PROPERTIES)).active,\r
+ cIDresources.getString("ActPropsTip"),\r
+ null, null, KeyEvent.VK_R, \r
+ KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, ActionEvent.ALT_MASK) ) \r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ statusMessage.setText((String)aProperties.getValue(Action.NAME));\r
+ }\r
+ };\r
+\r
+ a1_Up = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("Act1UpName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_1UP)).active,\r
+ cIDresources.getString("Act1UpTip"),\r
+ null, null, KeyEvent.VK_1, \r
+ KeyStroke.getKeyStroke(KeyEvent.VK_1, ActionEvent.ALT_MASK) ) \r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ modelChange(e);\r
+ }\r
+ };\r
+\r
+ a2_Up = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("Act2UpName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_2UP)).active,\r
+ cIDresources.getString("Act2UpTip"),\r
+ null, null, KeyEvent.VK_2, \r
+ KeyStroke.getKeyStroke(KeyEvent.VK_2, ActionEvent.ALT_MASK) ) \r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ modelChange(e);\r
+ }\r
+ };\r
+\r
+ aAlternate = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActAltName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_ALTERNATE)).active,\r
+ cIDresources.getString("ActAltTip"),\r
+ null, null, KeyEvent.VK_A, \r
+ KeyStroke.getKeyStroke(KeyEvent.VK_A, ActionEvent.ALT_MASK) ) \r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ modelChange(e);\r
+ }\r
+ };\r
+\r
+ aBothEyes = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActBothEyesName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_BOTH_EYES)).active,\r
+ cIDresources.getString("ActBothEyesTip"),\r
+ null, null, KeyEvent.VK_B, null ) \r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ eyesChange(e);\r
+ }\r
+ };\r
+\r
+ aSeparateEyes = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActSepEyesName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_SEPARATE_EYES)).active,\r
+ cIDresources.getString("ActSepEyesTip"),\r
+ null, null, KeyEvent.VK_S, null ) \r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ eyesChange(e);\r
+ }\r
+ };\r
+\r
+ aReading = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActReadName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_READING)).active,\r
+ cIDresources.getString("ActReadTip"),\r
+ null, null, KeyEvent.VK_R, \r
+ KeyStroke.getKeyStroke(KeyEvent.VK_R, ActionEvent.CTRL_MASK & ActionEvent.ALT_MASK)) \r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ templateChange(e);\r
+ }\r
+ };\r
+\r
+ aPatterns = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActPatName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_PATTERNS)).active,\r
+ cIDresources.getString("ActPatTip"),\r
+ null, null, KeyEvent.VK_P, \r
+ KeyStroke.getKeyStroke(KeyEvent.VK_P, ActionEvent.CTRL_MASK & ActionEvent.ALT_MASK) ) \r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ templateChange(e);\r
+ }\r
+ };\r
+\r
+ aImages = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActImgName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_IMAGES)).active,\r
+ cIDresources.getString("ActImgTip"),\r
+ null, null, KeyEvent.VK_I, \r
+ KeyStroke.getKeyStroke(KeyEvent.VK_I, ActionEvent.CTRL_MASK & ActionEvent.ALT_MASK) ) \r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ templateChange(e);\r
+ }\r
+ };\r
+\r
+ aRGB = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActRGBName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_RGB)).active,\r
+ cIDresources.getString("ActRGBTip"),\r
+ null, null, KeyEvent.VK_R, \r
+ KeyStroke.getKeyStroke(KeyEvent.VK_F1, ActionEvent.CTRL_MASK)) \r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ colourModelChange(e);\r
+ }\r
+ };\r
+\r
+ aHSB = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActHSBName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_HSB)).active,\r
+ cIDresources.getString("ActHSBTip"),\r
+ null, null, KeyEvent.VK_H, \r
+ KeyStroke.getKeyStroke(KeyEvent.VK_F2, ActionEvent.CTRL_MASK)) \r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ colourModelChange(e);\r
+ }\r
+ };\r
+\r
+ aCYMK = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActCYMKName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_CYMK)).active,\r
+ cIDresources.getString("ActCYMKTip"),\r
+ null, null, KeyEvent.VK_C, \r
+ KeyStroke.getKeyStroke(KeyEvent.VK_F3, ActionEvent.CTRL_MASK)) \r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ colourModelChange(e);\r
+ }\r
+ };\r
+\r
+ aWheel = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActWheelName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_WHEEL)).active,\r
+ cIDresources.getString("ActWheelTip"),\r
+ null, null, KeyEvent.VK_W, \r
+ KeyStroke.getKeyStroke(KeyEvent.VK_F4, ActionEvent.CTRL_MASK)) \r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ colourViewChange(e);\r
+ }\r
+ };\r
+\r
+ aTriangle = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActTriName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_TRIANGLE)).active,\r
+ cIDresources.getString("ActTriTip"),\r
+ null, null, KeyEvent.VK_T, \r
+ KeyStroke.getKeyStroke(KeyEvent.VK_F5, ActionEvent.CTRL_MASK) ) \r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ colourViewChange(e);\r
+ }\r
+ };\r
+\r
+ aQube = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActQubeName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_QUBE)).active,\r
+ cIDresources.getString("ActQubeTip"),\r
+ null, null, KeyEvent.VK_Q, \r
+ KeyStroke.getKeyStroke(KeyEvent.VK_F6, ActionEvent.CTRL_MASK)) \r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ colourViewChange(e);\r
+ }\r
+ };\r
+\r
+ aColorChooser = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActSysColName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_COLOR_CHOOSER)).active,\r
+ cIDresources.getString("ActSysColTip"),\r
+ null, null, KeyEvent.VK_S, \r
+ KeyStroke.getKeyStroke(KeyEvent.VK_F7, ActionEvent.CTRL_MASK)) \r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ colourViewChange(e);\r
+ }\r
+ };\r
+ \r
+ aSwatches = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActSwatchName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_SWATCHES)).active,\r
+ cIDresources.getString("ActSwatchTip"),\r
+ null, null, KeyEvent.VK_W, \r
+ KeyStroke.getKeyStroke(KeyEvent.VK_F8, ActionEvent.CTRL_MASK))\r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ colourViewChange(e);\r
+ }\r
+ };\r
+\r
+ aManual = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActManualName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_MANUAL)).active,\r
+ cIDresources.getString("ActManualTip"),\r
+ null, null, KeyEvent.VK_M, \r
+ KeyStroke.getKeyStroke(KeyEvent.VK_F9, ActionEvent.CTRL_MASK)) \r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ directorChange(e);\r
+ }\r
+ };\r
+\r
+ aAuto = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActAutoName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_AUTO)).active,\r
+ cIDresources.getString("ActAutoTip"),\r
+ null, null, KeyEvent.VK_A, \r
+ KeyStroke.getKeyStroke(KeyEvent.VK_F10, ActionEvent.CTRL_MASK)) \r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ directorChange(e);\r
+ }\r
+ };\r
+\r
+ aDirected = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActDirectName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_DIRECTED)).active,\r
+ cIDresources.getString("ActDirectTip"),\r
+ null, null, KeyEvent.VK_D, \r
+ KeyStroke.getKeyStroke(KeyEvent.VK_F11, ActionEvent.CTRL_MASK)) \r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ directorChange(e);\r
+ }\r
+ };\r
+\r
+ aScript = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActScriptName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_SCRIPT)).active,\r
+ cIDresources.getString("ActScriptTip"),\r
+ null, null, KeyEvent.VK_C, \r
+ KeyStroke.getKeyStroke(KeyEvent.VK_F12, ActionEvent.CTRL_MASK))\r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ directorChange(e);\r
+ }\r
+ };\r
+\r
+ aConnect = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActConnectName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_CONNECT)).active,\r
+ cIDresources.getString("ActConnectTip"),\r
+ null, null, KeyEvent.VK_C, null ) \r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ statusMessage.setText((String)aConnect.getValue(Action.NAME));\r
+ }\r
+ };\r
+\r
+ aPause = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActPauseName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_PAUSE)).active,\r
+ cIDresources.getString("ActPauseTip"),\r
+ null, null, KeyEvent.VK_P, null ) \r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ statusMessage.setText((String)aPause.getValue(Action.NAME));\r
+ }\r
+ };\r
+\r
+ aDisconnect = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActDiscName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_DISCONNECT)).active,\r
+ cIDresources.getString("ActDiscTip"),\r
+ null, null, KeyEvent.VK_D, null ) \r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ statusMessage.setText((String)aDisconnect.getValue(Action.NAME));\r
+ }\r
+ };\r
+\r
+ aPlay = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActPlayName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_PLAY)).active,\r
+ cIDresources.getString("ActPlayTip"),\r
+ null, null, KeyEvent.VK_P, null ) \r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ statusMessage.setText((String)aPlay.getValue(Action.NAME));\r
+ }\r
+ };\r
+\r
+ aRecord = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActRecName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_RECORD)).active,\r
+ cIDresources.getString("ActRecTip"),\r
+ null, null, KeyEvent.VK_R, null ) \r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ statusMessage.setText((String)aRecord.getValue(Action.NAME));\r
+ }\r
+ };\r
+\r
+ aStop = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActStopName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_STOP)).active,\r
+ cIDresources.getString("ActStopTip"),\r
+ null, null, KeyEvent.VK_S, null ) \r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ statusMessage.setText((String)aStop.getValue(Action.NAME));\r
+ }\r
+ };\r
+\r
+ aDynamicVista = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActDynVistaName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_OPTION_DYNAMIC_VISTA)).active,\r
+ cIDresources.getString("ActDynVistaTip"),\r
+ null, null, KeyEvent.VK_V, null ) \r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ statusMessage.setText((String)aDynamicVista.getValue(Action.NAME));\r
+ }\r
+ };\r
+\r
+ aLanguageDefault = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActLangDefName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_LANG_DEFAULT)).active,\r
+ cIDresources.getString("ActLangDefTip"),\r
+ null, null, KeyEvent.VK_D, null ) \r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ frameCID.setLocale(Locale.getDefault());\r
+ languageChange(e); // update application state\r
+ }\r
+ };\r
+\r
+ aLanguageBritish = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActLangBritName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_LANG_BRITISH)).active,\r
+ cIDresources.getString("ActLangBritTip"),\r
+ null, null, KeyEvent.VK_B, null ) \r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ frameCID.setLocale(Locale.UK);\r
+ languageChange(e); // update application state\r
+ }\r
+ };\r
+\r
+ aLanguageFrench = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActLangFrName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_LANG_FRENCH)).active,\r
+ cIDresources.getString("ActLangFrTip"),\r
+ null, null, KeyEvent.VK_F, null ) \r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ frameCID.setLocale(Locale.FRANCE);\r
+ languageChange(e); // update application state\r
+ }\r
+ };\r
+\r
+ aLanguageSpanish = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActLangSpanName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_LANG_SPANISH)).active,\r
+ cIDresources.getString("ActLangSpanTip"),\r
+ null, null, KeyEvent.VK_S, null ) \r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ frameCID.setLocale(new Locale("es","ES"));\r
+ languageChange(e); // update application state\r
+ }\r
+ };\r
+\r
+ aLanguageGerman = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActLangGerName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_LANG_GERMAN)).active,\r
+ cIDresources.getString("ActLangGerTip"),\r
+ null, null, KeyEvent.VK_G, null ) \r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ frameCID.setLocale(new Locale("de","DE"));\r
+ languageChange(e); // update application state\r
+ }\r
+ };\r
+\r
+ aLanguageArabicEgypt = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActLangArEGName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_LANG_AR_EG)).active,\r
+ cIDresources.getString("ActLangArEGTip"),\r
+ null, null, KeyEvent.VK_A, null ) \r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ frameCID.setLocale(new Locale("ar","EG"));\r
+ languageChange(e); // update application state\r
+ }\r
+ };\r
+\r
+ aLanguageFarsiIran = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActLangFaIRName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_LANG_FA_IR)).active,\r
+ cIDresources.getString("ActLangFaIRTip"),\r
+ null, null, 0, null ) // no keyboard mnemonic\r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ frameCID.setLocale(new Locale("fa","IR"));\r
+ languageChange(e); // update application state\r
+ }\r
+ };\r
+\r
+ aLanguageHindiIndia = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActLangHiINName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_LANG_FA_IR)).active,\r
+ cIDresources.getString("ActLangHiINTip"),\r
+ null, null, KeyEvent.VK_H, null )\r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ frameCID.setLocale(new Locale("hi","IN"));\r
+ languageChange(e); // update application state\r
+ }\r
+ };\r
+ \r
+ aLanguageIndonesian = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActLangIndonesianName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_LANG_IN)).active,\r
+ cIDresources.getString("ActLangIndonesianTip"),\r
+ null, null, 0, null )\r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ frameCID.setLocale(new Locale("in"));\r
+ languageChange(e); // update application state\r
+ }\r
+ };\r
+ \r
+ aLanguageJapanese = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActLangJapaneseName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_LANG_IN)).active,\r
+ cIDresources.getString("ActLangJapaneseTip"),\r
+ null, null, 0, null )\r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ frameCID.setLocale(new Locale("ja"));\r
+ languageChange(e); // update application state\r
+ }\r
+ };\r
+ \r
+ aLanguageDutch = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActLangDutchName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_LANG_IN)).active,\r
+ cIDresources.getString("ActLangDutchTip"),\r
+ null, null, 0, null )\r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ frameCID.setLocale(new Locale("nl"));\r
+ languageChange(e); // update application state\r
+ }\r
+ };\r
+ \r
+ aLanguagePashto = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActLangPashtoName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_LANG_IN)).active,\r
+ cIDresources.getString("ActLangPashtoTip"),\r
+ null, null, 0, null )\r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ frameCID.setLocale(new Locale("ps"));\r
+ languageChange(e); // update application state\r
+ }\r
+ };\r
+ \r
+ aLanguagePortuguese = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActLangPortugueseName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_LANG_IN)).active,\r
+ cIDresources.getString("ActLangPortugueseTip"),\r
+ null, null, 0, null )\r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ frameCID.setLocale(new Locale("pt"));\r
+ languageChange(e); // update application state\r
+ }\r
+ };\r
+ \r
+ aLanguageRussian = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActLangRussianName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_LANG_IN)).active,\r
+ cIDresources.getString("ActLangRussianTip"),\r
+ null, null, 0, null )\r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ frameCID.setLocale(new Locale("ru"));\r
+ languageChange(e); // update application state\r
+ }\r
+ };\r
+ \r
+ aLanguageSwedish = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActLangSwedishName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_LANG_IN)).active,\r
+ cIDresources.getString("ActLangSwedishTip"),\r
+ null, null, 0, null )\r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ frameCID.setLocale(new Locale("sv"));\r
+ languageChange(e); // update application state\r
+ }\r
+ };\r
+ \r
+ aLanguageUrdu = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActLangUrduName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_LANG_IN)).active,\r
+ cIDresources.getString("ActLangUrduTip"),\r
+ null, null, 0, null )\r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ frameCID.setLocale(new Locale("ur"));\r
+ languageChange(e); // update application state\r
+ }\r
+ };\r
+ \r
+ aLanguageChinese = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActLangChineseName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_LANG_IN)).active,\r
+ cIDresources.getString("ActLangChineseTip"),\r
+ null, null, 0, null )\r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ frameCID.setLocale(new Locale("zh"));\r
+ languageChange(e); // update application state\r
+ }\r
+ };\r
+ \r
+ aHelpContents = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActHelpConName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_HELP_CONTENTS)).active,\r
+ cIDresources.getString("ActHelpConTip"),\r
+ null, null, KeyEvent.VK_C, \r
+ KeyStroke.getKeyStroke(KeyEvent.VK_F1, ActionEvent.CTRL_MASK)) \r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ statusMessage.setText((String)aHelpContents.getValue(Action.NAME));\r
+ showHelp(xhtmlHelp.TAB_CONTENTS, false, true, true);\r
+ }\r
+ };\r
+\r
+ aHelpSearch = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActHelpSrcName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_HELP_SEARCH)).active,\r
+ cIDresources.getString("ActHelpSrcTip"),\r
+ null, null, KeyEvent.VK_S, null ) \r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ statusMessage.setText((String)aHelpSearch.getValue(Action.NAME));\r
+ showHelp(xhtmlHelp.TAB_SEARCH, false, true, true);\r
+ }\r
+ };\r
+\r
+ aHelpWeb = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActHelpWebName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_HELP_WEB)).active,\r
+ cIDresources.getString("ActHelpWebTip"),\r
+ null, null, KeyEvent.VK_W, null ) \r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ statusMessage.setText((String)aHelpWeb.getValue(Action.NAME));\r
+ }\r
+ };\r
+ aFilterTemplate = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActFltTmplName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_FILTER_TEMPLATE)).active,\r
+ cIDresources.getString("ActFltTmplTip"),\r
+ null, null, KeyEvent.VK_T,\r
+ KeyStroke.getKeyStroke(KeyEvent.VK_T, ActionEvent.CTRL_MASK)) \r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ filterChange(e, FILTER_TEMPLATE);\r
+ }\r
+ };\r
+\r
+ aFilterWindow = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActFltWinName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_FILTER_WINDOW)).active,\r
+ cIDresources.getString("ActFltWinTip"),\r
+ null, null, KeyEvent.VK_W,\r
+ KeyStroke.getKeyStroke(KeyEvent.VK_W, ActionEvent.CTRL_MASK)) \r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ filterChange(e, FILTER_WINDOW);\r
+ }\r
+ };\r
+\r
+ aFilterScreen = new org.tjworld.components.PowerAction(\r
+ cIDresources.getString("ActFltScrName"),\r
+ ((ToolIconPair)vToolIcons.get(IC_FILTER_SCREEN)).active,\r
+ cIDresources.getString("ActFltScrTip"),\r
+ null, null, KeyEvent.VK_S, null ) \r
+ {\r
+ public void actionPerformed(ActionEvent e) {\r
+ filterChange(e, FILTER_SCREEN);\r
+ }\r
+ };\r
+ }\r
+ \r
+ /** Display the HTML help window\r
+ * @param tabSelected The Navigation tab to give focus to\r
+ */ \r
+ public void showHelp(int tabSelected, boolean position, boolean show, boolean changeShow) {\r
+ if(helpWindow != null) {\r
+ if(helpLocation == null || position == true) { // not displayed before, so position nicely\r
+ helpLocation = new Point(getX(), getY() + getHeight());\r
+ helpWindow.setLocation(helpLocation, (Component)this);\r
+ Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();\r
+ Dimension d = getSize();\r
+ d.height = screenSize.height - (getY() + d.height);\r
+ helpWindow.setSize(d, (Component)this);\r
+ }\r
+\r
+ if(changeShow) helpWindow.setVisible(show);\r
+ if(tabSelected != 0) helpWindow.setNavigationTab(tabSelected);\r
+ }\r
+ }\r
+ \r
+ /** Switch the positioning of the VisTA filter\r
+ *\r
+ * By default the filter covers only the Template, but can be set to cover the\r
+ * entire Window, and in supported environments, the entire screen.\r
+ *\r
+ * Filtering the entire screen may require either the Java Full-Screen API so\r
+ * the application takes over the display, or else the use of Java Native Interface\r
+ * to communicate with the host Operating System.\r
+ */\r
+ private void filterChange(ActionEvent e, int newFilter) {\r
+ AbstractButton pa = (AbstractButton)e.getSource(); // identify the component that fired this event\r
+ statusIconFilter.setDisabledIcon(pa.getIcon()); // update the status icon \r
+ statusMessage.setText((String)pa.getAction().getValue(Action.NAME));\r
+\r
+ switch(activeFilter) { // deactivate the current filter\r
+ case FILTER_SCREEN: // remove attachment to screen\r
+ break;\r
+ case FILTER_WINDOW: // remove attachment to window\r
+ setGlassPane(defaultGlassPane);\r
+ defaultGlassPane.setVisible(false);\r
+ break;\r
+ case FILTER_TEMPLATE: // remove attachment to template\r
+ filterLayerPane.remove(vfFilter);\r
+ break;\r
+ }\r
+ \r
+ switch(newFilter) { // activate the requested filter\r
+ case FILTER_SCREEN: // attach to screen\r
+ break;\r
+ case FILTER_WINDOW: // attach to window\r
+ // defaultGlassPane = getGlassPane(); // store the current glass pane\r
+ setGlassPane(vfFilter); // replace it with the filter\r
+ vfFilter.setVisible(true); // make it visible\r
+ break;\r
+ case FILTER_TEMPLATE: // attach to template\r
+ vfFilter.setLocation(0,0); // might have been forced to relocate by Frame L&F decorations\r
+ filterLayerPane.add(vfFilter, javax.swing.JLayeredPane.DRAG_LAYER);\r
+ break;\r
+ }\r
+ activeFilter = newFilter;\r
+ }\r
+ \r
+ /** Update state of application after a Language change\r
+ *\r
+ * Reflects the change in the status bar icons, and iterates through\r
+ * all language-dependent components.\r
+ *\r
+ * @param e event fired by source component\r
+ */\r
+ private void languageChange(ActionEvent e) {\r
+ AbstractButton pa = (AbstractButton)e.getSource(); // identify the component that fired this event\r
+ statusIconLanguage.setDisabledIcon(pa.getIcon()); // update the status icon \r
+ statusMessage.setText((String)pa.getAction().getValue(Action.NAME));\r
+ }\r
+\r
+ /** Update state of application after a Director change\r
+ *\r
+ * Reflects the change in the status bar icons, and switches\r
+ * director mode.\r
+ *\r
+ * @param e event fired by source component\r
+ */\r
+ private void directorChange(ActionEvent e) {\r
+ AbstractButton pa = (AbstractButton)e.getSource(); // identify the component that fired this event\r
+ statusIconDirector.setDisabledIcon(pa.getIcon()); // update the status icon \r
+ statusMessage.setText((String)pa.getAction().getValue(Action.NAME));\r
+ }\r
+ \r
+ /** Update state of application after a Colour View change\r
+ *\r
+ * Reflects the change in the status bar icons, and changes \r
+ * colour view mode.\r
+ *\r
+ * @param e event fired by source component\r
+ */\r
+ private void colourViewChange(ActionEvent e) {\r
+ AbstractButton pa = (AbstractButton)e.getSource(); // identify the component that fired this event\r
+ statusIconColourView.setDisabledIcon(pa.getIcon()); // update the status icon \r
+ statusMessage.setText((String)pa.getAction().getValue(Action.NAME));\r
+ }\r
+ \r
+ /** Update state of application after a Colour Model change\r
+ *\r
+ * Reflects the change in the status bar icons, and changes\r
+ * the colour model.\r
+ *\r
+ * @param e event fired by source component\r
+ */\r
+ private void colourModelChange(ActionEvent e) {\r
+ AbstractButton pa = (AbstractButton)e.getSource(); // identify the component that fired this event\r
+ statusIconColourModel.setDisabledIcon(pa.getIcon()); // update the status icon \r
+ statusMessage.setText((String)pa.getAction().getValue(Action.NAME));\r
+ }\r
+ \r
+ /** Update state of application after a Template change\r
+ *\r
+ * Reflects the change in the status bar icons, and changes\r
+ * the template.\r
+ *\r
+ * @param e event fired by source component\r
+ */\r
+ private void templateChange(ActionEvent e) {\r
+ AbstractButton pa = (AbstractButton)e.getSource(); // identify the component that fired this event\r
+ statusIconTemplate.setDisabledIcon(pa.getIcon()); // update the status icon \r
+ statusMessage.setText((String)pa.getAction().getValue(Action.NAME));\r
+ }\r
+ \r
+ /** Update state of application after an Eye Model change\r
+ *\r
+ * Reflects the change in the status bar icons, and changes\r
+ * the eye model.\r
+ *\r
+ * @param e event fired by source component\r
+ */\r
+ private void eyesChange(ActionEvent e) {\r
+ AbstractButton pa = (AbstractButton)e.getSource(); // identify the component that fired this event\r
+ statusIconEyes.setDisabledIcon(pa.getIcon()); // update the status icon \r
+ statusMessage.setText((String)pa.getAction().getValue(Action.NAME));\r
+ }\r
+ \r
+ /** Update state of application after a Model change\r
+ *\r
+ * Reflects the change in the status bar icons, and changes\r
+ * the model.\r
+ *\r
+ * @param e event fired by source component\r
+ */\r
+ private void modelChange(ActionEvent e) {\r
+ AbstractButton pa = (AbstractButton)e.getSource(); // identify the component that fired this event\r
+ statusIconModel.setDisabledIcon(pa.getIcon()); // update the status icon \r
+ statusMessage.setText((String)pa.getAction().getValue(Action.NAME));\r
+ }\r
+ \r
+ /**\r
+ * Prints the application window exactly as it appears on screen\r
+ * @param g The context to draw into\r
+ * @param pf page format info\r
+ * @param pi page index (number) to print\r
+ * @return status\r
+ * @throws PrinterException Problem\r
+ */\r
+ public int print(Graphics g, PageFormat pf, int pi) throws PrinterException {\r
+ if(pi >= 1) // only got one page to print\r
+ return Printable.NO_SUCH_PAGE;\r
+\r
+ if(debugging) {\r
+ System.out.println("Page orientation: " + (pf.getOrientation() == PageFormat.LANDSCAPE ? "Landscape" : (pf.getOrientation() == PageFormat.PORTRAIT ? "Portrait" : "Reverse Landscape")));\r
+ System.out.println("Page Width=" + pf.getWidth() + ", Height=" + pf.getHeight());\r
+ System.out.println("Page ImageableX=" + pf.getImageableX() + ", ImageableY=" + pf.getImageableY());\r
+ System.out.println("Page Imageable Ints X=" + (new Double(pf.getImageableX())).intValue() + ", Y=" + (new Double(pf.getImageableY())).intValue());\r
+ System.out.println("Page ImageableWidth=" + pf.getImageableWidth() + ", ImageableHeight=" + pf.getImageableHeight());\r
+ System.out.println("Frame Width=" + getWidth() + " Height=" + getHeight());\r
+ System.out.println("Graphics Clip=" + g.getClip().toString());\r
+ }\r
+ \r
+ statusMessage.setText("Please wait, printing may take some time...");\r
+ // create a BufferedImage matching or exceeding the CID frame size \r
+ java.awt.image.BufferedImage buffer = new java.awt.image.BufferedImage(getWidth(), getHeight(), java.awt.image.BufferedImage.TYPE_INT_RGB);\r
+ // get a Graphics2D from the BufferedImage\r
+ Graphics2D g2d = buffer.createGraphics();\r
+ // pass the Graphics2D to the printAll() method\r
+ printAll(g2d);\r
+ // cast the printer Graphics object to a Graphics2D object\r
+ Graphics2D g2 = (Graphics2D)g;\r
+ // create a scaling transform to render the image half-size\r
+ AffineTransform scale = AffineTransform.getScaleInstance(0.5,0.5);\r
+ // apply it to the buffer Graphics2D context\r
+ g2.transform(scale);\r
+ // get an Affine (rotational) Transform taken from the PageFormat.getMatrix() method\r
+ // AffineTransformOp pageOrientation = new AffineTransformOp(new AffineTransform(pf.getMatrix()), AffineTransformOp.TYPE_BILINEAR); // deal with page orientation (landscape/portrait)\r
+ // translate the origin to ensure the image is not clipped by the page margins\r
+ g2.translate((new Double(pf.getImageableX())).intValue(), (new Double(pf.getImageableY())).intValue());\r
+ // create an Identity (1:1) Op because we have to give Graphics2D.drawImage() an Op of some kind\r
+ java.awt.image.RescaleOp scaleIdentity = new java.awt.image.RescaleOp(1.0f, 0.0f, null);\r
+ // use Graphics2D.drawImage(BufferedImage...) to rotate the image into the printer graphics context\r
+ g2.drawImage(buffer, scaleIdentity, (new Double(pf.getImageableWidth()/2)).intValue(), (new Double(pf.getImageableHeight()/2)).intValue());\r
+ // return the original Graphics object to the print engine \r
+ // return Printable.NO_SUCH_PAGE;\r
+ return Printable.PAGE_EXISTS;\r
+ }\r
+ \r
+ /** This method is called from within the constructor to\r
+ * initialize the form.\r
+ * WARNING: Do NOT modify this code. The content of this method is\r
+ * always regenerated by the Form Editor.\r
+ */\r
+ private void initComponents() {//GEN-BEGIN:initComponents\r
+ mbMain = new javax.swing.JMenuBar();\r
+ mProfile = new javax.swing.JMenu();\r
+ mProfileNew = new javax.swing.JMenuItem();\r
+ mProfileOpen = new javax.swing.JMenuItem();\r
+ mProfileSave = new javax.swing.JMenuItem();\r
+ mProfileSaveAs = new javax.swing.JMenuItem();\r
+ mProfileDelete = new javax.swing.JMenuItem();\r
+ mProfileSeparator1 = new javax.swing.JSeparator();\r
+ mProfileToVista = new javax.swing.JMenuItem();\r
+ mProfileSeparator2 = new javax.swing.JSeparator();\r
+ mProfileFromCookie = new javax.swing.JMenuItem();\r
+ mProfileToCookie = new javax.swing.JMenuItem();\r
+ mProfileCreateFilter = new javax.swing.JMenuItem();\r
+ mProfileWeb = new javax.swing.JMenuItem();\r
+ mProfileSeparator3 = new javax.swing.JSeparator();\r
+ mProfilePrint = new javax.swing.JMenuItem();\r
+ mProfilePageSetup = new javax.swing.JMenuItem();\r
+ mProfileSeparator4 = new javax.swing.JSeparator();\r
+ mProfileProperties = new javax.swing.JMenuItem();\r
+ mModel = new javax.swing.JMenu();\r
+ mModel1 = new javax.swing.JRadioButtonMenuItem();\r
+ mModel2 = new javax.swing.JRadioButtonMenuItem();\r
+ mModelAlternate = new javax.swing.JRadioButtonMenuItem();\r
+ jSeparator9 = new javax.swing.JSeparator();\r
+ mModelBothEyes = new javax.swing.JRadioButtonMenuItem();\r
+ mModelEyesSeparate = new javax.swing.JRadioButtonMenuItem();\r
+ mTemplate = new javax.swing.JMenu();\r
+ mTemplateReading = new javax.swing.JRadioButtonMenuItem();\r
+ mTemplatePattern = new javax.swing.JRadioButtonMenuItem();\r
+ mTemplateImage = new javax.swing.JRadioButtonMenuItem();\r
+ mColour = new javax.swing.JMenu();\r
+ mColourRGB = new javax.swing.JRadioButtonMenuItem();\r
+ mColourHSB = new javax.swing.JRadioButtonMenuItem();\r
+ mColourCYMK = new javax.swing.JRadioButtonMenuItem();\r
+ jSeparator7 = new javax.swing.JSeparator();\r
+ mColourWheel = new javax.swing.JRadioButtonMenuItem();\r
+ mColourTriangle = new javax.swing.JRadioButtonMenuItem();\r
+ mColourCube = new javax.swing.JRadioButtonMenuItem();\r
+ mColourSystemChooser = new javax.swing.JRadioButtonMenuItem();\r
+ mColourSwatch = new javax.swing.JRadioButtonMenuItem();\r
+ mDirector = new javax.swing.JMenu();\r
+ mDirectorManual = new javax.swing.JRadioButtonMenuItem();\r
+ mDirectorAuto = new javax.swing.JRadioButtonMenuItem();\r
+ mDirectorDirect = new javax.swing.JRadioButtonMenuItem();\r
+ mDirectorScript = new javax.swing.JRadioButtonMenuItem();\r
+ mOptions = new javax.swing.JMenu();\r
+ mOptionsReading = new javax.swing.JMenu();\r
+ mReadingChoose = new javax.swing.JMenuItem();\r
+ mReadingCustomize = new javax.swing.JMenuItem();\r
+ mReadingPreferences = new javax.swing.JMenuItem();\r
+ mOptionsPatterns = new javax.swing.JMenu();\r
+ mPatternsChoose = new javax.swing.JMenuItem();\r
+ mPatternsCustomize = new javax.swing.JMenuItem();\r
+ mPatternsPreferences = new javax.swing.JMenuItem();\r
+ mOptionsImages = new javax.swing.JMenu();\r
+ mImgChoose = new javax.swing.JMenuItem();\r
+ mImgCustomize = new javax.swing.JMenuItem();\r
+ mImgPreferences = new javax.swing.JMenuItem();\r
+ mOptionsSwatches = new javax.swing.JMenu();\r
+ mSwatchesChoose = new javax.swing.JMenuItem();\r
+ mSwatchesCustomize = new javax.swing.JMenuItem();\r
+ mSwatchesPreferences = new javax.swing.JMenuItem();\r
+ mOptionsDirected = new javax.swing.JMenu();\r
+ mDirectedConnect = new javax.swing.JMenuItem();\r
+ mDirectedDisconnect = new javax.swing.JMenuItem();\r
+ mDirectedPreferences = new javax.swing.JMenuItem();\r
+ mOptionsScripted = new javax.swing.JMenu();\r
+ mOptionsScriptedChoose = new javax.swing.JMenuItem();\r
+ mOptionsScriptedPlay = new javax.swing.JMenuItem();\r
+ mOptionsScriptedRecord = new javax.swing.JMenuItem();\r
+ mOptionsScriptedPause = new javax.swing.JMenuItem();\r
+ mOptionsScriptedStop = new javax.swing.JMenuItem();\r
+ mOptionsScriptedPreferences = new javax.swing.JMenuItem();\r
+ mOptionsFilter = new javax.swing.JMenu();\r
+ mFilterTemplate = new javax.swing.JRadioButtonMenuItem();\r
+ mFilterWindow = new javax.swing.JRadioButtonMenuItem();\r
+ mFilterScreen = new javax.swing.JRadioButtonMenuItem();\r
+ mOptionsLanguage = new javax.swing.JMenu();\r
+ mLanguageDefault = new javax.swing.JRadioButtonMenuItem();\r
+ mLanguageBritish = new javax.swing.JRadioButtonMenuItem();\r
+ mLanguageFrench = new javax.swing.JRadioButtonMenuItem();\r
+ mLanguageSpanish = new javax.swing.JRadioButtonMenuItem();\r
+ mLanguageGerman = new javax.swing.JRadioButtonMenuItem();\r
+ mLanguageArabicEgypt = new javax.swing.JRadioButtonMenuItem();\r
+ mLanguageFarsiIran = new javax.swing.JRadioButtonMenuItem();\r
+ mLanguageHindiIndia = new javax.swing.JRadioButtonMenuItem();\r
+ mLanguageIndonesian = new javax.swing.JRadioButtonMenuItem();\r
+ mLanguageJapanese = new javax.swing.JRadioButtonMenuItem();\r
+ mLanguageDutch = new javax.swing.JRadioButtonMenuItem();\r
+ mLanguagePashto = new javax.swing.JRadioButtonMenuItem();\r
+ mLanguagePortuguese = new javax.swing.JRadioButtonMenuItem();\r
+ mLanguageRussian = new javax.swing.JRadioButtonMenuItem();\r
+ mLanguageSwedish = new javax.swing.JRadioButtonMenuItem();\r
+ mLanguageUrdu = new javax.swing.JRadioButtonMenuItem();\r
+ mLanguageChinese = new javax.swing.JRadioButtonMenuItem();\r
+ mOptionsToolbar = new javax.swing.JMenu();\r
+ mToolbarToolBar = new javax.swing.JCheckBoxMenuItem();\r
+ jSeparator1 = new javax.swing.JSeparator();\r
+ mToolbarProfile = new javax.swing.JCheckBoxMenuItem();\r
+ mToolbarModel = new javax.swing.JCheckBoxMenuItem();\r
+ mToolbarEyes = new javax.swing.JCheckBoxMenuItem();\r
+ mToolbarTemplate = new javax.swing.JCheckBoxMenuItem();\r
+ mToolbarColourModel = new javax.swing.JCheckBoxMenuItem();\r
+ mToolbarColourView = new javax.swing.JCheckBoxMenuItem();\r
+ mToolbarDirector = new javax.swing.JCheckBoxMenuItem();\r
+ mToolbarConnection = new javax.swing.JCheckBoxMenuItem();\r
+ mToolbarScript = new javax.swing.JCheckBoxMenuItem();\r
+ mOptionsLandF = new javax.swing.JMenu();\r
+ mOptionsVistaDB = new javax.swing.JMenuItem();\r
+ mOptionsSeparator2 = new javax.swing.JSeparator();\r
+ mOptionsVistaWeb = new javax.swing.JCheckBoxMenuItem();\r
+ mHelp = new javax.swing.JMenu();\r
+ mHelpContents = new javax.swing.JMenuItem();\r
+ mHelpIndex = new javax.swing.JMenuItem();\r
+ mHelpSearch = new javax.swing.JMenuItem();\r
+ mHelpWebLink = new javax.swing.JMenuItem();\r
+ mHelpSeparator1 = new javax.swing.JSeparator();\r
+ mHelpExplain = new javax.swing.JCheckBoxMenuItem();\r
+ mHelpDock = new javax.swing.JCheckBoxMenuItem();\r
+ mHelpFilter = new javax.swing.JCheckBoxMenuItem();\r
+ mHelpSeparator2 = new javax.swing.JSeparator();\r
+ mHelpAbout = new javax.swing.JMenuItem();\r
+ btnGroupFilter = new javax.swing.ButtonGroup();\r
+ btnGroupTemplate = new javax.swing.ButtonGroup();\r
+ toolBar = new javax.swing.JToolBar();\r
+ pProfile = new javax.swing.JPanel();\r
+ btnNew = new javax.swing.JButton();\r
+ btnOpenFile = new javax.swing.JButton();\r
+ btnSave = new javax.swing.JButton();\r
+ btnSendToVistaDB = new javax.swing.JButton();\r
+ pModel = new javax.swing.JPanel();\r
+ btn1Up = new javax.swing.JToggleButton();\r
+ btn2Up = new javax.swing.JToggleButton();\r
+ btnAlternate = new javax.swing.JToggleButton();\r
+ pEyes = new javax.swing.JPanel();\r
+ btnEyes2 = new javax.swing.JToggleButton();\r
+ btnEyes1 = new javax.swing.JToggleButton();\r
+ pTemplate = new javax.swing.JPanel();\r
+ btnReading = new javax.swing.JToggleButton();\r
+ btnPatterns = new javax.swing.JToggleButton();\r
+ btnImages = new javax.swing.JToggleButton();\r
+ pColourModel = new javax.swing.JPanel();\r
+ btnRGB = new javax.swing.JToggleButton();\r
+ btnHSB = new javax.swing.JToggleButton();\r
+ btnCYMK = new javax.swing.JToggleButton();\r
+ pColourView = new javax.swing.JPanel();\r
+ btnWheel = new javax.swing.JToggleButton();\r
+ btnTriangle = new javax.swing.JToggleButton();\r
+ btnQube = new javax.swing.JToggleButton();\r
+ btnSystemChooser = new javax.swing.JToggleButton();\r
+ btnSwatches = new javax.swing.JToggleButton();\r
+ pDirector = new javax.swing.JPanel();\r
+ btnManual = new javax.swing.JToggleButton();\r
+ btnAuto = new javax.swing.JToggleButton();\r
+ btnDirected = new javax.swing.JToggleButton();\r
+ btnScript = new javax.swing.JToggleButton();\r
+ pConnection = new javax.swing.JPanel();\r
+ btnConnect = new javax.swing.JToggleButton();\r
+ btnDisconnect = new javax.swing.JToggleButton();\r
+ pScript = new javax.swing.JPanel();\r
+ btnPlay = new javax.swing.JToggleButton();\r
+ btnRecord = new javax.swing.JToggleButton();\r
+ btnPause = new javax.swing.JToggleButton();\r
+ btnStop = new javax.swing.JToggleButton();\r
+ workPanel = new javax.swing.JPanel();\r
+ spTemplate = new javax.swing.JSplitPane();\r
+ spColour = new javax.swing.JSplitPane();\r
+ colourPanel = new javax.swing.JPanel();\r
+ colourSelectorPanel = new javax.swing.JPanel();\r
+ filterSelector = new javax.swing.JPanel();\r
+ jIconRadioButton1 = new org.tjworld.components.JIconRadioButton();\r
+ jIconRadioButton2 = new org.tjworld.components.JIconRadioButton();\r
+ jIconRadioButton3 = new org.tjworld.components.JIconRadioButton();\r
+ jIconRadioButton4 = new org.tjworld.components.JIconRadioButton();\r
+ filterHistory = new javax.swing.JComboBox();\r
+ sysColorChooser = new javax.swing.JColorChooser();\r
+ tintPanel = new javax.swing.JPanel();\r
+ sliderTint = new javax.swing.JSlider();\r
+ filterLayerPane = new javax.swing.JLayeredPane();\r
+ templatePanel = new javax.swing.JPanel();\r
+ jTextPane3 = new javax.swing.JTextPane();\r
+ templateControlPanel = new javax.swing.JPanel();\r
+ templateSelectorPanel = new javax.swing.JPanel();\r
+ templateSelector = new javax.swing.JPanel();\r
+ jIconRadioButton6 = new org.tjworld.components.JIconRadioButton();\r
+ jIconRadioButton7 = new org.tjworld.components.JIconRadioButton();\r
+ jIconRadioButton8 = new org.tjworld.components.JIconRadioButton();\r
+ jIconRadioButton9 = new org.tjworld.components.JIconRadioButton();\r
+ templateHistory = new javax.swing.JComboBox();\r
+ ratingPanel = new javax.swing.JPanel();\r
+ sliderRating = new javax.swing.JSlider();\r
+ statusLine = new javax.swing.JPanel();\r
+ statusMessage = new javax.swing.JLabel();\r
+ statusRed = new javax.swing.JProgressBar();\r
+ statusGreen = new javax.swing.JProgressBar();\r
+ statusBlue = new javax.swing.JProgressBar();\r
+ statusTint = new javax.swing.JProgressBar();\r
+ statusIconPanel = new javax.swing.JPanel();\r
+ statusIconModel = new javax.swing.JButton();\r
+ statusIconEyes = new javax.swing.JButton();\r
+ statusIconTemplate = new javax.swing.JButton();\r
+ statusIconColourModel = new javax.swing.JButton();\r
+ statusIconColourView = new javax.swing.JButton();\r
+ statusIconDirector = new javax.swing.JButton();\r
+ statusIconFilter = new javax.swing.JButton();\r
+ statusIconLanguage = new javax.swing.JButton();\r
+ statusState = new javax.swing.JLabel();\r
+ \r
+ mbMain.setFocusCycleRoot(true);\r
+ mProfile.setMnemonic(java.awt.event.KeyEvent.VK_P);\r
+ mProfile.setText(cIDresources.getString("mProName"));\r
+ mProfile.setName("mPro");\r
+ mProfileNew.setAction(aNew);\r
+ mProfileNew.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_NEW)).dimmed);\r
+ mProfileNew.setName("ActNew");\r
+ mProfile.add(mProfileNew);\r
+ mProfileOpen.setAction(aOpen);\r
+ mProfileOpen.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_OPEN_FILE)).dimmed);\r
+ mProfileOpen.setIcon(((ToolIconPair)vToolIcons.get(IC_OPEN_FILE)).active);\r
+ mProfileOpen.setName("ActOpen");\r
+ mProfile.add(mProfileOpen);\r
+ mProfileSave.setAction(aSave);\r
+ mProfileSave.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_SAVE)).dimmed);\r
+ mProfileSave.setIcon(((ToolIconPair)vToolIcons.get(IC_SAVE)).active);\r
+ mProfileSave.setName("ActSave");\r
+ mProfile.add(mProfileSave);\r
+ mProfileSaveAs.setAction(aSaveAs);\r
+ mProfileSaveAs.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_SAVE_AS)).dimmed);\r
+ mProfileSaveAs.setIcon(((ToolIconPair)vToolIcons.get(IC_SAVE_AS)).active);\r
+ mProfileSaveAs.setName("ActSaveAs");\r
+ mProfile.add(mProfileSaveAs);\r
+ mProfileDelete.setAction(aDelete);\r
+ mProfileDelete.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_PROFILE_DELETE)).dimmed);\r
+ mProfileDelete.setName("ActDel");\r
+ mProfile.add(mProfileDelete);\r
+ mProfile.add(mProfileSeparator1);\r
+ mProfileToVista.setAction(aSendToVistaDB);\r
+ mProfileToVista.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_SEND_TO_VISTA_DB)).dimmed);\r
+ mProfileToVista.setIcon(((ToolIconPair)vToolIcons.get(IC_SEND_TO_VISTA_DB)).active);\r
+ mProfileToVista.setName("ActSendToVista");\r
+ mProfile.add(mProfileToVista);\r
+ mProfile.add(mProfileSeparator2);\r
+ mProfileFromCookie.setAction(aFromCookie);\r
+ mProfileFromCookie.setName("ActFrCook");\r
+ mProfile.add(mProfileFromCookie);\r
+ mProfileToCookie.setAction(aToCookie);\r
+ mProfileToCookie.setName("ActToCook");\r
+ mProfile.add(mProfileToCookie);\r
+ mProfileCreateFilter.setAction(aCreateFilter);\r
+ mProfileCreateFilter.setName("ActCreFlt");\r
+ mProfile.add(mProfileCreateFilter);\r
+ mProfileWeb.setAction(aToVistaPage);\r
+ mProfileWeb.setName("ActToVistaPage");\r
+ mProfile.add(mProfileWeb);\r
+ mProfile.add(mProfileSeparator3);\r
+ mProfilePrint.setAction(aPrint);\r
+ mProfilePrint.setName("ActPrint");\r
+ mProfile.add(mProfilePrint);\r
+ mProfilePageSetup.setAction(aPageSetup);\r
+ mProfilePageSetup.setName("ActPageSet");\r
+ mProfile.add(mProfilePageSetup);\r
+ mProfile.add(mProfileSeparator4);\r
+ mProfileProperties.setAction(aProperties);\r
+ mProfileProperties.setName("ActProProps");\r
+ mProfile.add(mProfileProperties);\r
+ mbMain.add(mProfile);\r
+ mModel.setMnemonic(java.awt.event.KeyEvent.VK_M);\r
+ mModel.setText(cIDresources.getString("mModName"));\r
+ mModel.setName("mMod");\r
+ mModel1.setSelected(true);\r
+ mbgModelAlgorithm.add(mModel1);\r
+ mModel1.setAction(a1_Up);\r
+ mModel1.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_1UP)).dimmed);\r
+ mModel1.setIcon(((ToolIconPair)vToolIcons.get(IC_1UP)).active);\r
+ mModel1.setName("Act1Up");\r
+ mModel.add(mModel1);\r
+ mbgModelAlgorithm.add(mModel2);\r
+ mModel2.setAction(a2_Up);\r
+ mModel2.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_2UP)).dimmed);\r
+ mModel2.setIcon(((ToolIconPair)vToolIcons.get(IC_2UP)).active);\r
+ mModel2.setName("Act2Up");\r
+ mModel.add(mModel2);\r
+ mbgModelAlgorithm.add(mModelAlternate);\r
+ mModelAlternate.setAction(aAlternate);\r
+ mModelAlternate.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_ALTERNATE)).dimmed);\r
+ mModelAlternate.setIcon(((ToolIconPair)vToolIcons.get(IC_ALTERNATE)).active);\r
+ mModelAlternate.setName("ActAlt");\r
+ mModel.add(mModelAlternate);\r
+ mModel.add(jSeparator9);\r
+ mModelBothEyes.setSelected(true);\r
+ mbgModelEyes.add(mModelBothEyes);\r
+ mModelBothEyes.setAction(aBothEyes);\r
+ mModelBothEyes.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_BOTH_EYES)).dimmed);\r
+ mModelBothEyes.setIcon(((ToolIconPair)vToolIcons.get(IC_BOTH_EYES)).active);\r
+ mModelBothEyes.setName("ActBothEyes");\r
+ mModel.add(mModelBothEyes);\r
+ mbgModelEyes.add(mModelEyesSeparate);\r
+ mModelEyesSeparate.setAction(aSeparateEyes);\r
+ mModelEyesSeparate.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_SEPARATE_EYES)).dimmed);\r
+ mModelEyesSeparate.setIcon(((ToolIconPair)vToolIcons.get(IC_SEPARATE_EYES)).active);\r
+ mModelEyesSeparate.setName("ActSepEyes");\r
+ mModel.add(mModelEyesSeparate);\r
+ mbMain.add(mModel);\r
+ mTemplate.setMnemonic(java.awt.event.KeyEvent.VK_T);\r
+ mTemplate.setText(cIDresources.getString("mTemplName"));\r
+ mTemplate.setName("mTempl");\r
+ mTemplateReading.setSelected(true);\r
+ mbgTemplate.add(mTemplateReading);\r
+ mTemplateReading.setAction(aReading);\r
+ mTemplateReading.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_READING)).dimmed);\r
+ mTemplateReading.setIcon(((ToolIconPair)vToolIcons.get(IC_READING)).active);\r
+ mTemplateReading.setName("ActRead");\r
+ mTemplate.add(mTemplateReading);\r
+ mbgTemplate.add(mTemplatePattern);\r
+ mTemplatePattern.setAction(aPatterns);\r
+ mTemplatePattern.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_PATTERNS)).dimmed);\r
+ mTemplatePattern.setIcon(((ToolIconPair)vToolIcons.get(IC_PATTERNS)).active);\r
+ mTemplatePattern.setName("ActPat");\r
+ mTemplate.add(mTemplatePattern);\r
+ mbgTemplate.add(mTemplateImage);\r
+ mTemplateImage.setAction(aImages);\r
+ mTemplateImage.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_IMAGES)).dimmed);\r
+ mTemplateImage.setIcon(((ToolIconPair)vToolIcons.get(IC_IMAGES)).active);\r
+ mTemplateImage.setName("ActPat");\r
+ mTemplate.add(mTemplateImage);\r
+ mbMain.add(mTemplate);\r
+ mColour.setMnemonic(java.awt.event.KeyEvent.VK_C);\r
+ mColour.setText(cIDresources.getString("mColourName"));\r
+ mColour.setName("mColour");\r
+ mbgColourModel.add(mColourRGB);\r
+ mColourRGB.setAction(aRGB);\r
+ mColourRGB.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_RGB)).dimmed);\r
+ mColourRGB.setIcon(((ToolIconPair)vToolIcons.get(IC_RGB)).active);\r
+ mColourRGB.setName("ActRGB");\r
+ mColour.add(mColourRGB);\r
+ mColourHSB.setSelected(true);\r
+ mbgColourModel.add(mColourHSB);\r
+ mColourHSB.setAction(aHSB);\r
+ mColourHSB.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_HSB)).dimmed);\r
+ mColourHSB.setIcon(((ToolIconPair)vToolIcons.get(IC_HSB)).active);\r
+ mColourHSB.setName("ActHSB");\r
+ mColour.add(mColourHSB);\r
+ mbgColourModel.add(mColourCYMK);\r
+ mColourCYMK.setAction(aCYMK);\r
+ mColourCYMK.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_CYMK)).dimmed);\r
+ mColourCYMK.setIcon(((ToolIconPair)vToolIcons.get(IC_CYMK)).active);\r
+ mColourCYMK.setName("ActCYMK");\r
+ mColour.add(mColourCYMK);\r
+ mColour.add(jSeparator7);\r
+ mbgColourView.add(mColourWheel);\r
+ mColourWheel.setAction(aWheel);\r
+ mColourWheel.setName("ActWheel");\r
+ mColour.add(mColourWheel);\r
+ mbgColourView.add(mColourTriangle);\r
+ mColourTriangle.setAction(aTriangle);\r
+ mColourTriangle.setName("ActTri");\r
+ mColour.add(mColourTriangle);\r
+ mbgColourView.add(mColourCube);\r
+ mColourCube.setAction(aQube);\r
+ mColourCube.setName("ActQube");\r
+ mColour.add(mColourCube);\r
+ mColourSystemChooser.setSelected(true);\r
+ mbgColourView.add(mColourSystemChooser);\r
+ mColourSystemChooser.setAction(aColorChooser);\r
+ mColourSystemChooser.setName("ActSysCol");\r
+ mColour.add(mColourSystemChooser);\r
+ mbgColourView.add(mColourSwatch);\r
+ mColourSwatch.setAction(aSwatches);\r
+ mColourSwatch.setName("ActSwatch");\r
+ mColour.add(mColourSwatch);\r
+ mbMain.add(mColour);\r
+ mDirector.setMnemonic(java.awt.event.KeyEvent.VK_D);\r
+ mDirector.setText(cIDresources.getString("mDirName"));\r
+ mDirector.setName("mDir");\r
+ mDirectorManual.setSelected(true);\r
+ mbgDirection.add(mDirectorManual);\r
+ mDirectorManual.setAction(aManual);\r
+ mDirectorManual.setName("ActManual");\r
+ mDirector.add(mDirectorManual);\r
+ mbgDirection.add(mDirectorAuto);\r
+ mDirectorAuto.setAction(aAuto);\r
+ mDirectorAuto.setName("ActAuto");\r
+ mDirector.add(mDirectorAuto);\r
+ mbgDirection.add(mDirectorDirect);\r
+ mDirectorDirect.setAction(aDirected);\r
+ mDirectorDirect.setName("ActDirect");\r
+ mDirector.add(mDirectorDirect);\r
+ mbgDirection.add(mDirectorScript);\r
+ mDirectorScript.setAction(aScript);\r
+ mDirectorScript.setName("ActScript");\r
+ mDirector.add(mDirectorScript);\r
+ mbMain.add(mDirector);\r
+ mOptions.setMnemonic(java.awt.event.KeyEvent.VK_O);\r
+ mOptions.setText(cIDresources.getString("mOptName"));\r
+ mOptions.setName("mOpt");\r
+ mOptionsReading.setMnemonic(java.awt.event.KeyEvent.VK_R);\r
+ mOptionsReading.setText(cIDresources.getString("mOptReadName"));\r
+ mOptionsReading.setToolTipText(cIDresources.getString("mOptReadTip"));\r
+ mOptionsReading.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_OPTION_CONFIG_READING)).dimmed);\r
+ mOptionsReading.setIcon(((ToolIconPair)vToolIcons.get(IC_OPTION_CONFIG_READING)).active);\r
+ mOptionsReading.setName("mOptRead");\r
+ mReadingChoose.setMnemonic(java.awt.event.KeyEvent.VK_O);\r
+ mReadingChoose.setText(cIDresources.getString("mOptReadChosName"));\r
+ mReadingChoose.setToolTipText(cIDresources.getString("mOptReadChosTip"));\r
+ mReadingChoose.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_OPTION_CHOOSE)).dimmed);\r
+ mReadingChoose.setIcon(((ToolIconPair)vToolIcons.get(IC_OPTION_CHOOSE)).active);\r
+ mReadingChoose.setName("mOptReadChos");\r
+ mOptionsReading.add(mReadingChoose);\r
+ mReadingCustomize.setMnemonic(java.awt.event.KeyEvent.VK_C);\r
+ mReadingCustomize.setText(cIDresources.getString("mOptTemplCustName"));\r
+ mReadingCustomize.setToolTipText(cIDresources.getString("mOptTemplCustTip"));\r
+ mReadingCustomize.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_OPTION_CUSTOMIZE)).dimmed);\r
+ mReadingCustomize.setIcon(((ToolIconPair)vToolIcons.get(IC_OPTION_CUSTOMIZE)).active);\r
+ mReadingCustomize.setName("mOptTemplCust");\r
+ mOptionsReading.add(mReadingCustomize);\r
+ mReadingPreferences.setMnemonic(java.awt.event.KeyEvent.VK_R);\r
+ mReadingPreferences.setText(cIDresources.getString("mOptReadPrefsName"));\r
+ mReadingPreferences.setToolTipText(cIDresources.getString("mOptReadPrefsTip"));\r
+ mReadingPreferences.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_OPTION_PREFERENCES)).dimmed);\r
+ mReadingPreferences.setIcon(((ToolIconPair)vToolIcons.get(IC_OPTION_PREFERENCES)).active);\r
+ mReadingPreferences.setName("mOptReadPrefs");\r
+ mOptionsReading.add(mReadingPreferences);\r
+ mOptions.add(mOptionsReading);\r
+ mOptionsPatterns.setMnemonic(java.awt.event.KeyEvent.VK_P);\r
+ mOptionsPatterns.setText(cIDresources.getString("mOptPatName"));\r
+ mOptionsPatterns.setToolTipText(cIDresources.getString("mOptPatTip"));\r
+ mOptionsPatterns.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_OPTION_CONFIG_PATTERNS)).dimmed);\r
+ mOptionsPatterns.setIcon(((ToolIconPair)vToolIcons.get(IC_OPTION_CONFIG_PATTERNS)).active);\r
+ mOptionsPatterns.setName("mOptPat");\r
+ mPatternsChoose.setMnemonic(java.awt.event.KeyEvent.VK_O);\r
+ mPatternsChoose.setText(cIDresources.getString("mOptPatChosName"));\r
+ mPatternsChoose.setToolTipText(cIDresources.getString("mOptPatChosTip"));\r
+ mPatternsChoose.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_OPTION_CHOOSE)).dimmed);\r
+ mPatternsChoose.setIcon(((ToolIconPair)vToolIcons.get(IC_OPTION_CHOOSE)).active);\r
+ mPatternsChoose.setName("mOptPatChos");\r
+ mOptionsPatterns.add(mPatternsChoose);\r
+ mPatternsCustomize.setMnemonic(java.awt.event.KeyEvent.VK_C);\r
+ mPatternsCustomize.setText(cIDresources.getString("mOptTemplCustName"));\r
+ mPatternsCustomize.setToolTipText(cIDresources.getString("mOptTemplCustTip"));\r
+ mPatternsCustomize.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_OPTION_CUSTOMIZE)).dimmed);\r
+ mPatternsCustomize.setIcon(((ToolIconPair)vToolIcons.get(IC_OPTION_CUSTOMIZE)).active);\r
+ mPatternsCustomize.setName("mOptTemplCust");\r
+ mOptionsPatterns.add(mPatternsCustomize);\r
+ mPatternsPreferences.setMnemonic(java.awt.event.KeyEvent.VK_R);\r
+ mPatternsPreferences.setText(cIDresources.getString("mOptPatPrefsName"));\r
+ mPatternsPreferences.setToolTipText(cIDresources.getString("mOptPatPrefsTip"));\r
+ mPatternsPreferences.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_OPTION_PREFERENCES)).dimmed);\r
+ mPatternsPreferences.setIcon(((ToolIconPair)vToolIcons.get(IC_OPTION_PREFERENCES)).active);\r
+ mPatternsPreferences.setName("mOptPatPrefs");\r
+ mOptionsPatterns.add(mPatternsPreferences);\r
+ mOptions.add(mOptionsPatterns);\r
+ mOptionsImages.setMnemonic(java.awt.event.KeyEvent.VK_I);\r
+ mOptionsImages.setText(cIDresources.getString("mOptImgName"));\r
+ mOptionsImages.setToolTipText(cIDresources.getString("mOptImgTip"));\r
+ mOptionsImages.setIcon(((ToolIconPair)vToolIcons.get(IC_IMAGES)).active);\r
+ mOptionsImages.setName("mOptImg");\r
+ mImgChoose.setMnemonic(java.awt.event.KeyEvent.VK_O);\r
+ mImgChoose.setText(cIDresources.getString("mOptImgChosName"));\r
+ mImgChoose.setToolTipText(cIDresources.getString("mOptImgChosTip"));\r
+ mImgChoose.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_OPTION_CHOOSE)).dimmed);\r
+ mImgChoose.setIcon(((ToolIconPair)vToolIcons.get(IC_OPTION_CHOOSE)).active);\r
+ mImgChoose.setName("mOptSwatChos");\r
+ mOptionsImages.add(mImgChoose);\r
+ mImgCustomize.setMnemonic(java.awt.event.KeyEvent.VK_C);\r
+ mImgCustomize.setText(cIDresources.getString("mOptTemplCustName"));\r
+ mImgCustomize.setToolTipText(cIDresources.getString("mOptTemplCustTip"));\r
+ mImgCustomize.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_OPTION_CUSTOMIZE)).dimmed);\r
+ mImgCustomize.setIcon(((ToolIconPair)vToolIcons.get(IC_OPTION_CUSTOMIZE)).active);\r
+ mImgCustomize.setName("mOptTemplCust");\r
+ mOptionsImages.add(mImgCustomize);\r
+ mImgPreferences.setMnemonic(java.awt.event.KeyEvent.VK_R);\r
+ mImgPreferences.setText(cIDresources.getString("mOptImgPrefsName"));\r
+ mImgPreferences.setToolTipText(cIDresources.getString("mOptImgPrefsTip"));\r
+ mImgPreferences.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_OPTION_PREFERENCES)).dimmed);\r
+ mImgPreferences.setIcon(((ToolIconPair)vToolIcons.get(IC_OPTION_PREFERENCES)).active);\r
+ mImgPreferences.setName("mOptSwatPrefs");\r
+ mOptionsImages.add(mImgPreferences);\r
+ mOptions.add(mOptionsImages);\r
+ mOptionsSwatches.setMnemonic(java.awt.event.KeyEvent.VK_W);\r
+ mOptionsSwatches.setText(cIDresources.getString("mOptSwatName"));\r
+ mOptionsSwatches.setToolTipText(cIDresources.getString("mOptSwatTip"));\r
+ mOptionsSwatches.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_OPTION_CONFIG_READING)).dimmed);\r
+ mOptionsSwatches.setIcon(((ToolIconPair)vToolIcons.get(IC_OPTION_CONFIG_SWATCHES)).active);\r
+ mOptionsSwatches.setName("mOptSwat");\r
+ mSwatchesChoose.setMnemonic(java.awt.event.KeyEvent.VK_O);\r
+ mSwatchesChoose.setText(cIDresources.getString("mOptSwatChosName"));\r
+ mSwatchesChoose.setToolTipText(cIDresources.getString("mOptSwatChosTip"));\r
+ mSwatchesChoose.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_OPTION_CHOOSE)).dimmed);\r
+ mSwatchesChoose.setIcon(((ToolIconPair)vToolIcons.get(IC_OPTION_CHOOSE)).active);\r
+ mSwatchesChoose.setName("mOptSwatChos");\r
+ mOptionsSwatches.add(mSwatchesChoose);\r
+ mSwatchesCustomize.setMnemonic(java.awt.event.KeyEvent.VK_C);\r
+ mSwatchesCustomize.setText(cIDresources.getString("mOptTemplCustName"));\r
+ mSwatchesCustomize.setToolTipText(cIDresources.getString("mOptTemplCustTip"));\r
+ mSwatchesCustomize.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_OPTION_CUSTOMIZE)).dimmed);\r
+ mSwatchesCustomize.setIcon(((ToolIconPair)vToolIcons.get(IC_OPTION_CUSTOMIZE)).active);\r
+ mSwatchesCustomize.setName("mOptTemplCust");\r
+ mOptionsSwatches.add(mSwatchesCustomize);\r
+ mSwatchesPreferences.setMnemonic(java.awt.event.KeyEvent.VK_R);\r
+ mSwatchesPreferences.setText(cIDresources.getString("mOptSwatPrefsName"));\r
+ mSwatchesPreferences.setToolTipText(cIDresources.getString("mOptSwatPrefsTip"));\r
+ mSwatchesPreferences.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_OPTION_PREFERENCES)).dimmed);\r
+ mSwatchesPreferences.setIcon(((ToolIconPair)vToolIcons.get(IC_OPTION_PREFERENCES)).active);\r
+ mSwatchesPreferences.setName("mOptSwatPrefs");\r
+ mOptionsSwatches.add(mSwatchesPreferences);\r
+ mOptions.add(mOptionsSwatches);\r
+ mOptionsDirected.setMnemonic(java.awt.event.KeyEvent.VK_I);\r
+ mOptionsDirected.setText(cIDresources.getString("mOptDirName"));\r
+ mOptionsDirected.setToolTipText(cIDresources.getString("mOptDirTip"));\r
+ mOptionsDirected.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_OPTION_CONFIG_DIRECTED)).dimmed);\r
+ mOptionsDirected.setIcon(((ToolIconPair)vToolIcons.get(IC_OPTION_CONFIG_DIRECTED)).active);\r
+ mOptionsDirected.setName("mOptDir");\r
+ mDirectedConnect.setAction(aConnect);\r
+ mDirectedConnect.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_CONNECT)).dimmed);\r
+ mDirectedConnect.setIcon(((ToolIconPair)vToolIcons.get(IC_CONNECT)).active);\r
+ mDirectedConnect.setName("ActConnect");\r
+ mOptionsDirected.add(mDirectedConnect);\r
+ mDirectedDisconnect.setAction(aDisconnect);\r
+ mDirectedDisconnect.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_DISCONNECT)).dimmed);\r
+ mDirectedDisconnect.setIcon(((ToolIconPair)vToolIcons.get(IC_DISCONNECT)).active);\r
+ mDirectedDisconnect.setName("ActDisc");\r
+ mOptionsDirected.add(mDirectedDisconnect);\r
+ mDirectedPreferences.setMnemonic(java.awt.event.KeyEvent.VK_R);\r
+ mDirectedPreferences.setText(cIDresources.getString("mOptDirPrefsName"));\r
+ mDirectedPreferences.setToolTipText(cIDresources.getString("mOptDirPrefsTip"));\r
+ mDirectedPreferences.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_OPTION_PREFERENCES)).dimmed);\r
+ mDirectedPreferences.setIcon(((ToolIconPair)vToolIcons.get(IC_OPTION_PREFERENCES)).active);\r
+ mDirectedPreferences.setName("mOptDirPrefs");\r
+ mOptionsDirected.add(mDirectedPreferences);\r
+ mOptions.add(mOptionsDirected);\r
+ mOptionsScripted.setMnemonic(java.awt.event.KeyEvent.VK_C);\r
+ mOptionsScripted.setText(cIDresources.getString("mOptScrName"));\r
+ mOptionsScripted.setToolTipText(cIDresources.getString("mOptScrTip"));\r
+ mOptionsScripted.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_OPTION_CONFIG_SCRIPT)).dimmed);\r
+ mOptionsScripted.setIcon(((ToolIconPair)vToolIcons.get(IC_OPTION_CONFIG_SCRIPT)).active);\r
+ mOptionsScripted.setName("mOptScr");\r
+ mOptionsScriptedChoose.setMnemonic(java.awt.event.KeyEvent.VK_O);\r
+ mOptionsScriptedChoose.setText(cIDresources.getString("mOptScrChosName"));\r
+ mOptionsScriptedChoose.setToolTipText(cIDresources.getString("mOptScrChosTip"));\r
+ mOptionsScriptedChoose.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_OPTION_CHOOSE)).dimmed);\r
+ mOptionsScriptedChoose.setIcon(((ToolIconPair)vToolIcons.get(IC_OPTION_CHOOSE)).active);\r
+ mOptionsScriptedChoose.setName("mOptScrChos");\r
+ mOptionsScripted.add(mOptionsScriptedChoose);\r
+ mOptionsScriptedPlay.setMnemonic(java.awt.event.KeyEvent.VK_Y);\r
+ mOptionsScriptedPlay.setAction(aPlay);\r
+ mOptionsScriptedPlay.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_PLAY)).dimmed);\r
+ mOptionsScriptedPlay.setIcon(((ToolIconPair)vToolIcons.get(IC_PLAY)).active);\r
+ mOptionsScriptedPlay.setName("ActPlay");\r
+ mOptionsScripted.add(mOptionsScriptedPlay);\r
+ mOptionsScriptedRecord.setAction(aRecord);\r
+ mOptionsScriptedRecord.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_RECORD)).dimmed);\r
+ mOptionsScriptedRecord.setName("ActRec");\r
+ mOptionsScripted.add(mOptionsScriptedRecord);\r
+ mOptionsScriptedPause.setAction(aPause);\r
+ mOptionsScriptedPause.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_PAUSE)).dimmed);\r
+ mOptionsScriptedPause.setIcon(((ToolIconPair)vToolIcons.get(IC_PAUSE)).active);\r
+ mOptionsScriptedPause.setName("ActPause");\r
+ mOptionsScripted.add(mOptionsScriptedPause);\r
+ mOptionsScriptedStop.setAction(aStop);\r
+ mOptionsScriptedStop.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_STOP)).dimmed);\r
+ mOptionsScriptedStop.setIcon(((ToolIconPair)vToolIcons.get(IC_STOP)).active);\r
+ mOptionsScriptedStop.setName("ActStop");\r
+ mOptionsScripted.add(mOptionsScriptedStop);\r
+ mOptionsScriptedPreferences.setText(cIDresources.getString("mOptScrPrefsName"));\r
+ mOptionsScriptedPreferences.setToolTipText(cIDresources.getString("mOptScrPrefsTip"));\r
+ mOptionsScriptedPreferences.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_OPTION_PREFERENCES)).dimmed);\r
+ mOptionsScriptedPreferences.setIcon(((ToolIconPair)vToolIcons.get(IC_OPTION_PREFERENCES)).active);\r
+ mOptionsScriptedPreferences.setName("mOptScrPrefs");\r
+ mOptionsScripted.add(mOptionsScriptedPreferences);\r
+ mOptions.add(mOptionsScripted);\r
+ mOptionsFilter.setMnemonic(java.awt.event.KeyEvent.VK_F);\r
+ mOptionsFilter.setText(cIDresources.getString("mOptFltName"));\r
+ mOptionsFilter.setToolTipText(cIDresources.getString("mOptFltTip"));\r
+ mOptionsFilter.setIcon(((ToolIconPair)vToolIcons.get(IC_FILTER_WINDOW)).active);\r
+ mOptionsFilter.setName("mOptFlt");\r
+ mFilterTemplate.setSelected(true);\r
+ mbgFilter.add(mFilterTemplate);\r
+ mFilterTemplate.setAction(aFilterTemplate);\r
+ mFilterTemplate.setName("ActFltTmpl");\r
+ mOptionsFilter.add(mFilterTemplate);\r
+ mbgFilter.add(mFilterWindow);\r
+ mFilterWindow.setAction(aFilterWindow);\r
+ mFilterWindow.setName("ActFltWin");\r
+ mOptionsFilter.add(mFilterWindow);\r
+ mbgFilter.add(mFilterScreen);\r
+ mFilterScreen.setAction(aFilterScreen);\r
+ mFilterScreen.setName("ActFltScr");\r
+ mOptionsFilter.add(mFilterScreen);\r
+ mOptions.add(mOptionsFilter);\r
+ mOptionsLanguage.setMnemonic(java.awt.event.KeyEvent.VK_L);\r
+ mOptionsLanguage.setText(cIDresources.getString("mOptLangName"));\r
+ mOptionsLanguage.setToolTipText(cIDresources.getString("mOptLangTip"));\r
+ mOptionsLanguage.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_LANGUAGE)).dimmed);\r
+ mOptionsLanguage.setIcon(((ToolIconPair)vToolIcons.get(IC_LANGUAGE)).active);\r
+ mOptionsLanguage.setName("mOptLang");\r
+ mLanguageDefault.setSelected(true);\r
+ mbgLanguage.add(mLanguageDefault);\r
+ mLanguageDefault.setAction(aLanguageDefault);\r
+ mLanguageDefault.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_LANG_DEFAULT)).dimmed);\r
+ mLanguageDefault.setIcon(((ToolIconPair)vToolIcons.get(IC_LANG_DEFAULT)).active);\r
+ mLanguageDefault.setName("ActLangDef");\r
+ mOptionsLanguage.add(mLanguageDefault);\r
+ mbgLanguage.add(mLanguageBritish);\r
+ mLanguageBritish.setAction(aLanguageBritish);\r
+ mLanguageBritish.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_LANG_BRITISH)).dimmed);\r
+ mLanguageBritish.setIcon(((ToolIconPair)vToolIcons.get(IC_LANG_BRITISH)).active);\r
+ mLanguageBritish.setName("ActLangBrit");\r
+ mOptionsLanguage.add(mLanguageBritish);\r
+ mbgLanguage.add(mLanguageFrench);\r
+ mLanguageFrench.setAction(aLanguageFrench);\r
+ mLanguageFrench.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_LANG_FRENCH)).dimmed);\r
+ mLanguageFrench.setIcon(((ToolIconPair)vToolIcons.get(IC_LANG_FRENCH)).active);\r
+ mLanguageFrench.setName("ActLangFr");\r
+ mOptionsLanguage.add(mLanguageFrench);\r
+ mbgLanguage.add(mLanguageSpanish);\r
+ mLanguageSpanish.setAction(aLanguageSpanish);\r
+ mLanguageSpanish.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_LANG_SPANISH)).dimmed);\r
+ mLanguageSpanish.setIcon(((ToolIconPair)vToolIcons.get(IC_LANG_SPANISH)).active);\r
+ mLanguageSpanish.setName("ActLangSpan");\r
+ mOptionsLanguage.add(mLanguageSpanish);\r
+ mbgLanguage.add(mLanguageGerman);\r
+ mLanguageGerman.setAction(aLanguageGerman);\r
+ mLanguageGerman.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_LANG_GERMAN)).dimmed);\r
+ mLanguageGerman.setIcon(((ToolIconPair)vToolIcons.get(IC_LANG_GERMAN)).active);\r
+ mLanguageGerman.setName("ActLangGer");\r
+ mOptionsLanguage.add(mLanguageGerman);\r
+ mbgLanguage.add(mLanguageArabicEgypt);\r
+ mLanguageArabicEgypt.setAction(aLanguageArabicEgypt);\r
+ mLanguageArabicEgypt.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_LANG_AR_EG)).dimmed);\r
+ mLanguageArabicEgypt.setIcon(((ToolIconPair)vToolIcons.get(IC_LANG_AR_EG)).active);\r
+ mLanguageArabicEgypt.setName("ActLangArEG");\r
+ mOptionsLanguage.add(mLanguageArabicEgypt);\r
+ mbgLanguage.add(mLanguageFarsiIran);\r
+ mLanguageFarsiIran.setAction(aLanguageFarsiIran);\r
+ mLanguageFarsiIran.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_LANG_FA_IR)).dimmed);\r
+ mLanguageFarsiIran.setIcon(((ToolIconPair)vToolIcons.get(IC_LANG_FA_IR)).active);\r
+ mLanguageFarsiIran.setName("ActLangFaIR");\r
+ mOptionsLanguage.add(mLanguageFarsiIran);\r
+ mbgLanguage.add(mLanguageHindiIndia);\r
+ mLanguageHindiIndia.setAction(aLanguageHindiIndia);\r
+ mLanguageHindiIndia.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_LANG_HI_IN)).dimmed);\r
+ mLanguageHindiIndia.setIcon(((ToolIconPair)vToolIcons.get(IC_LANG_HI_IN)).active);\r
+ mLanguageHindiIndia.setName("ActLangHiIN");\r
+ mOptionsLanguage.add(mLanguageHindiIndia);\r
+ mbgLanguage.add(mLanguageIndonesian);\r
+ mLanguageIndonesian.setAction(aLanguageIndonesian);\r
+ mLanguageIndonesian.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_LANG_IN)).dimmed);\r
+ mLanguageIndonesian.setIcon(((ToolIconPair)vToolIcons.get(IC_LANG_IN)).active);\r
+ mLanguageIndonesian.setName("ActLangIndonesian");\r
+ mOptionsLanguage.add(mLanguageIndonesian);\r
+ mbgLanguage.add(mLanguageJapanese);\r
+ mLanguageJapanese.setAction(aLanguageJapanese);\r
+ mLanguageJapanese.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_LANG_JA)).dimmed);\r
+ mLanguageJapanese.setIcon(((ToolIconPair)vToolIcons.get(IC_LANG_JA)).active);\r
+ mLanguageJapanese.setName("ActLangJapanese");\r
+ mOptionsLanguage.add(mLanguageJapanese);\r
+ mbgLanguage.add(mLanguageDutch);\r
+ mLanguageDutch.setAction(aLanguageDutch);\r
+ mLanguageDutch.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_LANG_NL)).dimmed);\r
+ mLanguageDutch.setIcon(((ToolIconPair)vToolIcons.get(IC_LANG_NL)).active);\r
+ mLanguageDutch.setName("ActLangDutch");\r
+ mOptionsLanguage.add(mLanguageDutch);\r
+ mbgLanguage.add(mLanguagePashto);\r
+ mLanguagePashto.setAction(aLanguagePashto);\r
+ mLanguagePashto.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_LANG_PS)).dimmed);\r
+ mLanguagePashto.setIcon(((ToolIconPair)vToolIcons.get(IC_LANG_PS)).active);\r
+ mLanguagePashto.setName("ActLangPashto");\r
+ mOptionsLanguage.add(mLanguagePashto);\r
+ mbgLanguage.add(mLanguagePortuguese);\r
+ mLanguagePortuguese.setAction(aLanguagePortuguese);\r
+ mLanguagePortuguese.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_LANG_PT)).dimmed);\r
+ mLanguagePortuguese.setIcon(((ToolIconPair)vToolIcons.get(IC_LANG_PT)).active);\r
+ mLanguagePortuguese.setName("ActLangPortuguese");\r
+ mOptionsLanguage.add(mLanguagePortuguese);\r
+ mbgLanguage.add(mLanguageRussian);\r
+ mLanguageRussian.setAction(aLanguageRussian);\r
+ mLanguageRussian.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_LANG_RU)).dimmed);\r
+ mLanguageRussian.setIcon(((ToolIconPair)vToolIcons.get(IC_LANG_RU)).active);\r
+ mLanguageRussian.setName("ActLangRussian");\r
+ mOptionsLanguage.add(mLanguageRussian);\r
+ mbgLanguage.add(mLanguageSwedish);\r
+ mLanguageSwedish.setAction(aLanguageSwedish);\r
+ mLanguageSwedish.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_LANG_SV)).dimmed);\r
+ mLanguageSwedish.setIcon(((ToolIconPair)vToolIcons.get(IC_LANG_SV)).active);\r
+ mLanguageSwedish.setName("ActLangSwedish");\r
+ mOptionsLanguage.add(mLanguageSwedish);\r
+ mbgLanguage.add(mLanguageUrdu);\r
+ mLanguageUrdu.setAction(aLanguageUrdu);\r
+ mLanguageUrdu.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_LANG_UR)).dimmed);\r
+ mLanguageUrdu.setIcon(((ToolIconPair)vToolIcons.get(IC_LANG_UR)).active);\r
+ mLanguageUrdu.setName("ActLangUrdu");\r
+ mOptionsLanguage.add(mLanguageUrdu);\r
+ mbgLanguage.add(mLanguageChinese);\r
+ mLanguageChinese.setAction(aLanguageChinese);\r
+ mLanguageChinese.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_LANG_ZH)).dimmed);\r
+ mLanguageChinese.setIcon(((ToolIconPair)vToolIcons.get(IC_LANG_ZH)).active);\r
+ mLanguageChinese.setName("ActLangChinese");\r
+ mOptionsLanguage.add(mLanguageChinese);\r
+ mOptions.add(mOptionsLanguage);\r
+ mOptionsToolbar.setMnemonic(java.awt.event.KeyEvent.VK_T);\r
+ mOptionsToolbar.setText(cIDresources.getString("mOptTbarName"));\r
+ mOptionsToolbar.setToolTipText(cIDresources.getString("mOptTbarTip"));\r
+ mOptionsToolbar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/tjworld/vista/cid/media/toolbars.gif")));\r
+ mOptionsToolbar.setName("mOptTbar");\r
+ mToolbarToolBar.setSelected(true);\r
+ mToolbarToolBar.setText(cIDresources.getString("mTbarTbarName"));\r
+ mToolbarToolBar.setToolTipText(cIDresources.getString("mTbarTbarTip"));\r
+ mToolbarToolBar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/tjworld/vista/cid/media/toolbars.gif")));\r
+ mToolbarToolBar.setName("mTbarTbar");\r
+ mToolbarToolBar.addActionListener(new java.awt.event.ActionListener() {\r
+ public void actionPerformed(java.awt.event.ActionEvent evt) {\r
+ mToolbarToolBarActionPerformed(evt);\r
+ }\r
+ });\r
+ \r
+ mOptionsToolbar.add(mToolbarToolBar);\r
+ mOptionsToolbar.add(jSeparator1);\r
+ mToolbarProfile.setSelected(true);\r
+ mToolbarProfile.setText(cIDresources.getString("ActProName"));\r
+ mToolbarProfile.setIcon(((ToolIconPair)vToolIcons.get(IC_NEW)).active);\r
+ mToolbarProfile.setName("ActPro");\r
+ mToolbarProfile.addActionListener(new java.awt.event.ActionListener() {\r
+ public void actionPerformed(java.awt.event.ActionEvent evt) {\r
+ mToolbarProfileActionPerformed(evt);\r
+ }\r
+ });\r
+ \r
+ mOptionsToolbar.add(mToolbarProfile);\r
+ mToolbarModel.setSelected(true);\r
+ mToolbarModel.setText(cIDresources.getString("mModName"));\r
+ mToolbarModel.setIcon(((ToolIconPair)vToolIcons.get(IC_1UP)).active);\r
+ mToolbarModel.setName("mMod");\r
+ mToolbarModel.addActionListener(new java.awt.event.ActionListener() {\r
+ public void actionPerformed(java.awt.event.ActionEvent evt) {\r
+ mToolbarModelActionPerformed(evt);\r
+ }\r
+ });\r
+ \r
+ mOptionsToolbar.add(mToolbarModel);\r
+ mToolbarEyes.setSelected(true);\r
+ mToolbarEyes.setText(cIDresources.getString("mEyesName"));\r
+ mToolbarEyes.setIcon(((ToolIconPair)vToolIcons.get(IC_BOTH_EYES)).active);\r
+ mToolbarEyes.setName("mEyes");\r
+ mToolbarEyes.addActionListener(new java.awt.event.ActionListener() {\r
+ public void actionPerformed(java.awt.event.ActionEvent evt) {\r
+ mToolbarEyesActionPerformed(evt);\r
+ }\r
+ });\r
+ \r
+ mOptionsToolbar.add(mToolbarEyes);\r
+ mToolbarTemplate.setSelected(true);\r
+ mToolbarTemplate.setText(cIDresources.getString("mTemplName"));\r
+ mToolbarTemplate.setIcon(((ToolIconPair)vToolIcons.get(IC_READING)).active);\r
+ mToolbarTemplate.setName("mTempl");\r
+ mToolbarTemplate.addActionListener(new java.awt.event.ActionListener() {\r
+ public void actionPerformed(java.awt.event.ActionEvent evt) {\r
+ mToolbarTemplateActionPerformed(evt);\r
+ }\r
+ });\r
+ \r
+ mOptionsToolbar.add(mToolbarTemplate);\r
+ mToolbarColourModel.setSelected(true);\r
+ mToolbarColourModel.setText(cIDresources.getString("mColourModelName"));\r
+ mToolbarColourModel.setIcon(((ToolIconPair)vToolIcons.get(IC_RGB)).active);\r
+ mToolbarColourModel.setName("mColourModel");\r
+ mToolbarColourModel.addActionListener(new java.awt.event.ActionListener() {\r
+ public void actionPerformed(java.awt.event.ActionEvent evt) {\r
+ mToolbarColourModelActionPerformed(evt);\r
+ }\r
+ });\r
+ \r
+ mOptionsToolbar.add(mToolbarColourModel);\r
+ mToolbarColourView.setSelected(true);\r
+ mToolbarColourView.setText(cIDresources.getString("mColourViewName"));\r
+ mToolbarColourView.setIcon(((ToolIconPair)vToolIcons.get(IC_WHEEL)).active);\r
+ mToolbarColourView.setName("mColourView");\r
+ mToolbarColourView.addActionListener(new java.awt.event.ActionListener() {\r
+ public void actionPerformed(java.awt.event.ActionEvent evt) {\r
+ mToolbarColourViewActionPerformed(evt);\r
+ }\r
+ });\r
+ \r
+ mOptionsToolbar.add(mToolbarColourView);\r
+ mToolbarDirector.setSelected(true);\r
+ mToolbarDirector.setText(cIDresources.getString("mDirName"));\r
+ mToolbarDirector.setIcon(((ToolIconPair)vToolIcons.get(IC_MANUAL)).active);\r
+ mToolbarDirector.setName("mDir");\r
+ mToolbarDirector.addActionListener(new java.awt.event.ActionListener() {\r
+ public void actionPerformed(java.awt.event.ActionEvent evt) {\r
+ mToolbarDirectorActionPerformed(evt);\r
+ }\r
+ });\r
+ \r
+ mOptionsToolbar.add(mToolbarDirector);\r
+ mToolbarConnection.setSelected(true);\r
+ mToolbarConnection.setText(cIDresources.getString("mConnectName"));\r
+ mToolbarConnection.setIcon(((ToolIconPair)vToolIcons.get(IC_CONNECT)).active);\r
+ mToolbarConnection.setName("mConnect");\r
+ mToolbarConnection.addActionListener(new java.awt.event.ActionListener() {\r
+ public void actionPerformed(java.awt.event.ActionEvent evt) {\r
+ mToolbarConnectionActionPerformed(evt);\r
+ }\r
+ });\r
+ \r
+ mOptionsToolbar.add(mToolbarConnection);\r
+ mToolbarScript.setSelected(true);\r
+ mToolbarScript.setText(cIDresources.getString("ActScriptName"));\r
+ mToolbarScript.setIcon(((ToolIconPair)vToolIcons.get(IC_PLAY)).active);\r
+ mToolbarScript.setName("ActScript");\r
+ mToolbarScript.addActionListener(new java.awt.event.ActionListener() {\r
+ public void actionPerformed(java.awt.event.ActionEvent evt) {\r
+ mToolbarScriptActionPerformed(evt);\r
+ }\r
+ });\r
+ \r
+ mOptionsToolbar.add(mToolbarScript);\r
+ mOptions.add(mOptionsToolbar);\r
+ mOptionsLandF.setMnemonic(java.awt.event.KeyEvent.VK_AMPERSAND);\r
+ mOptionsLandF.setText(cIDresources.getString("mOptLFName"));\r
+ mOptionsLandF.setToolTipText(cIDresources.getString("mOptLFTip"));\r
+ mOptionsLandF.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/tjworld/vista/cid/media/lookfeel.gif")));\r
+ mOptionsLandF.setName("mOptLF");\r
+ mOptions.add(mOptionsLandF);\r
+ mOptionsVistaDB.setMnemonic(java.awt.event.KeyEvent.VK_V);\r
+ mOptionsVistaDB.setText(cIDresources.getString("mOptVistaDBName"));\r
+ mOptionsVistaDB.setToolTipText(cIDresources.getString("mOptVistaDBTip"));\r
+ mOptionsVistaDB.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_OPTION_CONFIG_VISTA_DB)).dimmed);\r
+ mOptionsVistaDB.setIcon(((ToolIconPair)vToolIcons.get(IC_OPTION_CONFIG_VISTA_DB)).active);\r
+ mOptionsVistaDB.setName("mOptVistaDB");\r
+ mOptions.add(mOptionsVistaDB);\r
+ mOptions.add(mOptionsSeparator2);\r
+ mOptionsVistaWeb.setMnemonic(java.awt.event.KeyEvent.VK_W);\r
+ mOptionsVistaWeb.setSelected(true);\r
+ mOptionsVistaWeb.setText(cIDresources.getString("mOptDynName"));\r
+ mOptionsVistaWeb.setToolTipText(cIDresources.getString("mOptDynTip"));\r
+ mOptionsVistaWeb.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_OPTION_DYNAMIC_VISTA)).dimmed);\r
+ mOptionsVistaWeb.setIcon(((ToolIconPair)vToolIcons.get(IC_OPTION_DYNAMIC_VISTA)).active);\r
+ mOptionsVistaWeb.setName("mOptDyn");\r
+ mOptions.add(mOptionsVistaWeb);\r
+ mbMain.add(mOptions);\r
+ mHelp.setMnemonic(java.awt.event.KeyEvent.VK_H);\r
+ mHelp.setText(cIDresources.getString("mHelpName"));\r
+ mHelp.setName("mHelp");\r
+ mHelpContents.setAction(aHelpContents);\r
+ mHelpContents.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_HELP)).dimmed);\r
+ mHelpContents.setName("ActHelpCon");\r
+ mHelp.add(mHelpContents);\r
+ mHelpIndex.setMnemonic(java.awt.event.KeyEvent.VK_I);\r
+ mHelpIndex.setText(cIDresources.getString("mHelpIdxName"));\r
+ mHelpIndex.setToolTipText(cIDresources.getString("mHelpIdxTip"));\r
+ mHelpIndex.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_HELP_INDEX)).dimmed);\r
+ mHelpIndex.setIcon(((ToolIconPair)vToolIcons.get(IC_HELP_INDEX)).active);\r
+ mHelpIndex.setName("ActHelpIdx");\r
+ mHelpIndex.addActionListener(new java.awt.event.ActionListener() {\r
+ public void actionPerformed(java.awt.event.ActionEvent evt) {\r
+ mHelpIndexActionPerformed(evt);\r
+ }\r
+ });\r
+ \r
+ mHelp.add(mHelpIndex);\r
+ mHelpSearch.setAction(aHelpSearch);\r
+ mHelpSearch.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_HELP_SEARCH)).dimmed);\r
+ mHelpSearch.setName("ActHelpSrc");\r
+ mHelp.add(mHelpSearch);\r
+ mHelpWebLink.setAction(aHelpWeb);\r
+ mHelpWebLink.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_HELP_WEB)).dimmed);\r
+ mHelpWebLink.setIcon(((ToolIconPair)vToolIcons.get(IC_HELP_WEB)).active);\r
+ mHelpWebLink.setName("ActHelpWeb");\r
+ mHelp.add(mHelpWebLink);\r
+ mHelp.add(mHelpSeparator1);\r
+ mHelpExplain.setMnemonic(java.awt.event.KeyEvent.VK_X);\r
+ mHelpExplain.setSelected(true);\r
+ mHelpExplain.setText(cIDresources.getString("mHelpExpName"));\r
+ mHelpExplain.setToolTipText(cIDresources.getString("mHelpExpTip"));\r
+ mHelpExplain.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_HELP_EXPLAIN)).dimmed);\r
+ mHelpExplain.setIcon(((ToolIconPair)vToolIcons.get(IC_HELP_EXPLAIN)).active);\r
+ mHelpExplain.setName("ActHelpExp");\r
+ mHelp.add(mHelpExplain);\r
+ mHelpDock.setMnemonic(java.awt.event.KeyEvent.VK_D);\r
+ mHelpDock.setText(cIDresources.getString("mHelpDockName"));\r
+ mHelpDock.setToolTipText(cIDresources.getString("mHelpDockTip"));\r
+ mHelpDock.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/tjworld/vista/cid/media/undocked.gif")));\r
+ mHelpDock.setSelectedIcon(new javax.swing.ImageIcon(getClass().getResource("/org/tjworld/vista/cid/media/docked.gif")));\r
+ mHelpDock.addActionListener(new java.awt.event.ActionListener() {\r
+ public void actionPerformed(java.awt.event.ActionEvent evt) {\r
+ mHelpDockActionPerformed(evt);\r
+ }\r
+ });\r
+ \r
+ mHelp.add(mHelpDock);\r
+ mHelpFilter.setMnemonic(java.awt.event.KeyEvent.VK_V);\r
+ mHelpFilter.setText(cIDresources.getString("mHelpFilterName"));\r
+ mHelpFilter.setToolTipText(cIDresources.getString("mHelpFilterTip"));\r
+ mHelpFilter.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/tjworld/vista/cid/media/helpFilter.gif")));\r
+ mHelpFilter.addActionListener(new java.awt.event.ActionListener() {\r
+ public void actionPerformed(java.awt.event.ActionEvent evt) {\r
+ mHelpFilterActionPerformed(evt);\r
+ }\r
+ });\r
+ \r
+ mHelp.add(mHelpFilter);\r
+ mHelp.add(mHelpSeparator2);\r
+ mHelpAbout.setMnemonic(java.awt.event.KeyEvent.VK_A);\r
+ mHelpAbout.setText(cIDresources.getString("mHelpAbtName"));\r
+ mHelpAbout.setToolTipText(cIDresources.getString("mHelpAbtTip"));\r
+ mHelpAbout.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_HELP_ABOUT)).dimmed);\r
+ mHelpAbout.setIcon(((ToolIconPair)vToolIcons.get(IC_HELP_ABOUT)).active);\r
+ mHelpAbout.setName("ActHelpAbt");\r
+ mHelpAbout.addActionListener(new java.awt.event.ActionListener() {\r
+ public void actionPerformed(java.awt.event.ActionEvent evt) {\r
+ mHelpAboutActionPerformed(evt);\r
+ }\r
+ });\r
+ \r
+ mHelp.add(mHelpAbout);\r
+ mbMain.add(mHelp);\r
+ \r
+ setTitle(cIDresources.getString("tVistaAppTitle"));\r
+ setFont(new java.awt.Font("Dialog", 0, 12));\r
+ setIconImage(icVista.getImage());\r
+ setName("tVistaApp");\r
+ addComponentListener(new java.awt.event.ComponentAdapter() {\r
+ public void componentMoved(java.awt.event.ComponentEvent evt) {\r
+ formComponentMoved(evt);\r
+ }\r
+ });\r
+ \r
+ addPropertyChangeListener(new java.beans.PropertyChangeListener() {\r
+ public void propertyChange(java.beans.PropertyChangeEvent evt) {\r
+ formPropertyChange(evt);\r
+ }\r
+ });\r
+ \r
+ addWindowListener(new java.awt.event.WindowAdapter() {\r
+ public void windowClosing(java.awt.event.WindowEvent evt) {\r
+ exitForm(evt);\r
+ }\r
+ });\r
+ \r
+ toolBar.setToolTipText(cIDresources.getString("tToolBarTip"));\r
+ toolBar.setName("tToolBar");\r
+ toolBar.addMouseListener(new java.awt.event.MouseAdapter() {\r
+ public void mousePressed(java.awt.event.MouseEvent evt) {\r
+ toolBarMousePressed(evt);\r
+ }\r
+ public void mouseReleased(java.awt.event.MouseEvent evt) {\r
+ toolBarMouseReleased(evt);\r
+ }\r
+ });\r
+ \r
+ pProfile.setLayout(new javax.swing.BoxLayout(pProfile, javax.swing.BoxLayout.X_AXIS));\r
+ \r
+ btnNew.setToolTipText(cIDresources.getString("ActNewTip"));\r
+ btnNew.setAction(aNew);\r
+ btnNew.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_NEW)).dimmed);\r
+ btnNew.setName("ActNew");\r
+ btnNew.addMouseListener(new java.awt.event.MouseAdapter() {\r
+ public void mouseExited(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseExited(evt);\r
+ }\r
+ public void mouseEntered(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseEntered(evt);\r
+ }\r
+ });\r
+ \r
+ pProfile.add(btnNew);\r
+ \r
+ btnOpenFile.setToolTipText(cIDresources.getString("ActOpenTip"));\r
+ btnOpenFile.setAction(aOpen);\r
+ btnOpenFile.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_OPEN_FILE)).dimmed);\r
+ btnOpenFile.setName("ActOpen");\r
+ btnOpenFile.addMouseListener(new java.awt.event.MouseAdapter() {\r
+ public void mouseExited(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseExited(evt);\r
+ }\r
+ public void mouseEntered(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseEntered(evt);\r
+ }\r
+ });\r
+ \r
+ pProfile.add(btnOpenFile);\r
+ \r
+ btnSave.setToolTipText(cIDresources.getString("ActSaveTip"));\r
+ btnSave.setAction(aSave);\r
+ btnSave.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_SAVE)).dimmed);\r
+ btnSave.setName("ActSave");\r
+ btnSave.addMouseListener(new java.awt.event.MouseAdapter() {\r
+ public void mouseExited(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseExited(evt);\r
+ }\r
+ public void mouseEntered(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseEntered(evt);\r
+ }\r
+ });\r
+ \r
+ pProfile.add(btnSave);\r
+ \r
+ btnSendToVistaDB.setToolTipText(cIDresources.getString("ActSendToVistaTip"));\r
+ btnSendToVistaDB.setAction(aSendToVistaDB);\r
+ btnSendToVistaDB.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_SEND_TO_VISTA_DB)).dimmed);\r
+ btnSendToVistaDB.setName("ActSendToVista");\r
+ btnSendToVistaDB.addMouseListener(new java.awt.event.MouseAdapter() {\r
+ public void mouseExited(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseExited(evt);\r
+ }\r
+ public void mouseEntered(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseEntered(evt);\r
+ }\r
+ });\r
+ \r
+ pProfile.add(btnSendToVistaDB);\r
+ \r
+ toolBar.add(pProfile);\r
+ \r
+ pModel.setLayout(new javax.swing.BoxLayout(pModel, javax.swing.BoxLayout.X_AXIS));\r
+ \r
+ toolBar.addSeparator();\r
+ btn1Up.setSelected(true);\r
+ btn1Up.setToolTipText(cIDresources.getString("Act1UpTip"));\r
+ tbgModelAlgorithm.add(btn1Up);\r
+ btn1Up.setAction(a1_Up);\r
+ btn1Up.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_1UP)).dimmed);\r
+ btn1Up.setName("Act1Up");\r
+ btn1Up.setSelectedIcon(new javax.swing.ImageIcon(getClass().getResource("/org/tjworld/vista/cid/media/sel1up.gif")));\r
+ btn1Up.addMouseListener(new java.awt.event.MouseAdapter() {\r
+ public void mouseExited(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseExited(evt);\r
+ }\r
+ public void mouseEntered(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseEntered(evt);\r
+ }\r
+ });\r
+ \r
+ pModel.add(btn1Up);\r
+ \r
+ btn2Up.setToolTipText(cIDresources.getString("Act2UpTip"));\r
+ tbgModelAlgorithm.add(btn2Up);\r
+ btn2Up.setAction(a2_Up);\r
+ btn2Up.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_2UP)).dimmed);\r
+ btn2Up.setName("Act2Up");\r
+ btn2Up.setSelectedIcon(new javax.swing.ImageIcon(getClass().getResource("/org/tjworld/vista/cid/media/sel2up.gif")));\r
+ btn2Up.addMouseListener(new java.awt.event.MouseAdapter() {\r
+ public void mouseExited(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseExited(evt);\r
+ }\r
+ public void mouseEntered(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseEntered(evt);\r
+ }\r
+ });\r
+ \r
+ pModel.add(btn2Up);\r
+ \r
+ btnAlternate.setToolTipText(cIDresources.getString("ActAltTip"));\r
+ tbgModelAlgorithm.add(btnAlternate);\r
+ btnAlternate.setAction(aAlternate);\r
+ btnAlternate.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_ALTERNATE)).dimmed);\r
+ btnAlternate.setName("ActAlt");\r
+ btnAlternate.setSelectedIcon(new javax.swing.ImageIcon(getClass().getResource("/org/tjworld/vista/cid/media/selalternate.gif")));\r
+ btnAlternate.addMouseListener(new java.awt.event.MouseAdapter() {\r
+ public void mouseExited(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseExited(evt);\r
+ }\r
+ public void mouseEntered(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseEntered(evt);\r
+ }\r
+ });\r
+ \r
+ pModel.add(btnAlternate);\r
+ \r
+ toolBar.add(pModel);\r
+ \r
+ pEyes.setLayout(new javax.swing.BoxLayout(pEyes, javax.swing.BoxLayout.X_AXIS));\r
+ \r
+ toolBar.addSeparator();\r
+ btnEyes2.setSelected(true);\r
+ btnEyes2.setToolTipText(cIDresources.getString("ActBothEyesTip"));\r
+ tbgModelEyes.add(btnEyes2);\r
+ btnEyes2.setAction(aBothEyes);\r
+ btnEyes2.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_BOTH_EYES)).dimmed);\r
+ btnEyes2.setName("ActBothEyes");\r
+ btnEyes2.setSelectedIcon(new javax.swing.ImageIcon(getClass().getResource("/org/tjworld/vista/cid/media/seleyes2.gif")));\r
+ btnEyes2.addMouseListener(new java.awt.event.MouseAdapter() {\r
+ public void mouseExited(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseExited(evt);\r
+ }\r
+ public void mouseEntered(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseEntered(evt);\r
+ }\r
+ });\r
+ \r
+ pEyes.add(btnEyes2);\r
+ \r
+ btnEyes1.setToolTipText(cIDresources.getString("ActSepEyesTip"));\r
+ tbgModelEyes.add(btnEyes1);\r
+ btnEyes1.setAction(aSeparateEyes);\r
+ btnEyes1.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_SEPARATE_EYES)).dimmed);\r
+ btnEyes1.setName("ActSepEyes");\r
+ btnEyes1.setSelectedIcon(new javax.swing.ImageIcon(getClass().getResource("/org/tjworld/vista/cid/media/seleyes1.gif")));\r
+ btnEyes1.addMouseListener(new java.awt.event.MouseAdapter() {\r
+ public void mouseExited(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseExited(evt);\r
+ }\r
+ public void mouseEntered(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseEntered(evt);\r
+ }\r
+ });\r
+ \r
+ pEyes.add(btnEyes1);\r
+ \r
+ toolBar.add(pEyes);\r
+ \r
+ pTemplate.setLayout(new javax.swing.BoxLayout(pTemplate, javax.swing.BoxLayout.X_AXIS));\r
+ \r
+ toolBar.addSeparator();\r
+ btnReading.setSelected(true);\r
+ btnReading.setToolTipText(cIDresources.getString("ActReadTip"));\r
+ tbgTemplate.add(btnReading);\r
+ btnReading.setAction(aReading);\r
+ btnReading.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_READING)).dimmed);\r
+ btnReading.setName("ActRead");\r
+ btnReading.setSelectedIcon(new javax.swing.ImageIcon(getClass().getResource("/org/tjworld/vista/cid/media/selreading.gif")));\r
+ btnReading.addMouseListener(new java.awt.event.MouseAdapter() {\r
+ public void mouseExited(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseExited(evt);\r
+ }\r
+ public void mouseEntered(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseEntered(evt);\r
+ }\r
+ });\r
+ \r
+ pTemplate.add(btnReading);\r
+ \r
+ btnPatterns.setToolTipText(cIDresources.getString("ActPatTip"));\r
+ tbgTemplate.add(btnPatterns);\r
+ btnPatterns.setAction(aPatterns);\r
+ btnPatterns.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_PATTERNS)).dimmed);\r
+ btnPatterns.setName("ActPat");\r
+ btnPatterns.setSelectedIcon(new javax.swing.ImageIcon(getClass().getResource("/org/tjworld/vista/cid/media/selpatterns.gif")));\r
+ btnPatterns.addMouseListener(new java.awt.event.MouseAdapter() {\r
+ public void mouseExited(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseExited(evt);\r
+ }\r
+ public void mouseEntered(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseEntered(evt);\r
+ }\r
+ });\r
+ \r
+ pTemplate.add(btnPatterns);\r
+ \r
+ tbgTemplate.add(btnImages);\r
+ btnImages.setAction(aImages);\r
+ btnImages.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_IMAGES)).dimmed);\r
+ btnImages.setName("ActImages");\r
+ btnImages.setSelectedIcon(new javax.swing.ImageIcon(getClass().getResource("/org/tjworld/vista/cid/media/selimages.gif")));\r
+ btnImages.addMouseListener(new java.awt.event.MouseAdapter() {\r
+ public void mouseExited(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseExited(evt);\r
+ }\r
+ public void mouseEntered(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseEntered(evt);\r
+ }\r
+ });\r
+ \r
+ pTemplate.add(btnImages);\r
+ \r
+ toolBar.add(pTemplate);\r
+ \r
+ pColourModel.setLayout(new javax.swing.BoxLayout(pColourModel, javax.swing.BoxLayout.X_AXIS));\r
+ \r
+ toolBar.addSeparator();\r
+ btnRGB.setToolTipText(cIDresources.getString("ActRGBTip"));\r
+ tbgColourModel.add(btnRGB);\r
+ btnRGB.setAction(aRGB);\r
+ btnRGB.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_RGB)).dimmed);\r
+ btnRGB.setName("ActRGB");\r
+ btnRGB.setSelectedIcon(new javax.swing.ImageIcon(getClass().getResource("/org/tjworld/vista/cid/media/selrgb.gif")));\r
+ btnRGB.addMouseListener(new java.awt.event.MouseAdapter() {\r
+ public void mouseExited(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseExited(evt);\r
+ }\r
+ public void mouseEntered(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseEntered(evt);\r
+ }\r
+ });\r
+ \r
+ pColourModel.add(btnRGB);\r
+ \r
+ btnHSB.setSelected(true);\r
+ btnHSB.setToolTipText(cIDresources.getString("ActHSBTip"));\r
+ tbgColourModel.add(btnHSB);\r
+ btnHSB.setAction(aHSB);\r
+ btnHSB.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_HSB)).dimmed);\r
+ btnHSB.setName("ActHSB");\r
+ btnHSB.setSelectedIcon(new javax.swing.ImageIcon(getClass().getResource("/org/tjworld/vista/cid/media/selhsb.gif")));\r
+ btnHSB.addMouseListener(new java.awt.event.MouseAdapter() {\r
+ public void mouseExited(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseExited(evt);\r
+ }\r
+ public void mouseEntered(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseEntered(evt);\r
+ }\r
+ });\r
+ \r
+ pColourModel.add(btnHSB);\r
+ \r
+ btnCYMK.setToolTipText(cIDresources.getString("ActCYMKTip"));\r
+ tbgColourModel.add(btnCYMK);\r
+ btnCYMK.setAction(aCYMK);\r
+ btnCYMK.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_CYMK)).dimmed);\r
+ btnCYMK.setName("ActCYMK");\r
+ btnCYMK.setSelectedIcon(new javax.swing.ImageIcon(getClass().getResource("/org/tjworld/vista/cid/media/selcymk.gif")));\r
+ btnCYMK.addMouseListener(new java.awt.event.MouseAdapter() {\r
+ public void mouseExited(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseExited(evt);\r
+ }\r
+ public void mouseEntered(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseEntered(evt);\r
+ }\r
+ });\r
+ \r
+ pColourModel.add(btnCYMK);\r
+ \r
+ toolBar.add(pColourModel);\r
+ \r
+ pColourView.setLayout(new javax.swing.BoxLayout(pColourView, javax.swing.BoxLayout.X_AXIS));\r
+ \r
+ toolBar.addSeparator();\r
+ btnWheel.setToolTipText(cIDresources.getString("ActWheelTip"));\r
+ tbgColourView.add(btnWheel);\r
+ btnWheel.setAction(aWheel);\r
+ btnWheel.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_WHEEL)).dimmed);\r
+ btnWheel.setName("ActWheel");\r
+ btnWheel.setSelectedIcon(new javax.swing.ImageIcon(getClass().getResource("/org/tjworld/vista/cid/media/selwheel.gif")));\r
+ btnWheel.addMouseListener(new java.awt.event.MouseAdapter() {\r
+ public void mouseExited(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseExited(evt);\r
+ }\r
+ public void mouseEntered(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseEntered(evt);\r
+ }\r
+ });\r
+ \r
+ pColourView.add(btnWheel);\r
+ \r
+ btnTriangle.setToolTipText(cIDresources.getString("ActTriTip"));\r
+ tbgColourView.add(btnTriangle);\r
+ btnTriangle.setAction(aTriangle);\r
+ btnTriangle.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_TRIANGLE)).dimmed);\r
+ btnTriangle.setName("ActTri");\r
+ btnTriangle.setSelectedIcon(new javax.swing.ImageIcon(getClass().getResource("/org/tjworld/vista/cid/media/seltriangle.gif")));\r
+ btnTriangle.addMouseListener(new java.awt.event.MouseAdapter() {\r
+ public void mouseExited(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseExited(evt);\r
+ }\r
+ public void mouseEntered(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseEntered(evt);\r
+ }\r
+ });\r
+ \r
+ pColourView.add(btnTriangle);\r
+ \r
+ btnQube.setToolTipText(cIDresources.getString("ActQubeTip"));\r
+ tbgColourView.add(btnQube);\r
+ btnQube.setAction(aQube);\r
+ btnQube.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_QUBE)).dimmed);\r
+ btnQube.setName("ActQube");\r
+ btnQube.setSelectedIcon(new javax.swing.ImageIcon(getClass().getResource("/org/tjworld/vista/cid/media/selqube.gif")));\r
+ btnQube.addMouseListener(new java.awt.event.MouseAdapter() {\r
+ public void mouseExited(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseExited(evt);\r
+ }\r
+ public void mouseEntered(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseEntered(evt);\r
+ }\r
+ });\r
+ \r
+ pColourView.add(btnQube);\r
+ \r
+ btnSystemChooser.setSelected(true);\r
+ btnSystemChooser.setToolTipText(cIDresources.getString("ActSysColTip"));\r
+ tbgColourView.add(btnSystemChooser);\r
+ btnSystemChooser.setAction(aColorChooser);\r
+ btnSystemChooser.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_COLOR_CHOOSER)).dimmed);\r
+ btnSystemChooser.setName("ActSysCol");\r
+ btnSystemChooser.setSelectedIcon(new javax.swing.ImageIcon(getClass().getResource("/org/tjworld/vista/cid/media/selsysColour.gif")));\r
+ btnSystemChooser.addMouseListener(new java.awt.event.MouseAdapter() {\r
+ public void mouseExited(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseExited(evt);\r
+ }\r
+ public void mouseEntered(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseEntered(evt);\r
+ }\r
+ });\r
+ \r
+ pColourView.add(btnSystemChooser);\r
+ \r
+ btnSwatches.setToolTipText(cIDresources.getString("ActSwatchTip"));\r
+ tbgColourView.add(btnSwatches);\r
+ btnSwatches.setAction(aSwatches);\r
+ btnSwatches.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_SWATCHES)).dimmed);\r
+ btnSwatches.setName("ActSwatch");\r
+ btnSwatches.setSelectedIcon(new javax.swing.ImageIcon(getClass().getResource("/org/tjworld/vista/cid/media/selswatches.gif")));\r
+ btnSwatches.addMouseListener(new java.awt.event.MouseAdapter() {\r
+ public void mouseExited(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseExited(evt);\r
+ }\r
+ public void mouseEntered(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseEntered(evt);\r
+ }\r
+ });\r
+ \r
+ pColourView.add(btnSwatches);\r
+ \r
+ toolBar.add(pColourView);\r
+ \r
+ pDirector.setLayout(new javax.swing.BoxLayout(pDirector, javax.swing.BoxLayout.X_AXIS));\r
+ \r
+ toolBar.addSeparator();\r
+ btnManual.setSelected(true);\r
+ btnManual.setToolTipText(cIDresources.getString("ActManualTip"));\r
+ tbgDirection.add(btnManual);\r
+ btnManual.setAction(aManual);\r
+ btnManual.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_MANUAL)).dimmed);\r
+ btnManual.setName("ActManual");\r
+ btnManual.setSelectedIcon(new javax.swing.ImageIcon(getClass().getResource("/org/tjworld/vista/cid/media/selmanual.gif")));\r
+ btnManual.addMouseListener(new java.awt.event.MouseAdapter() {\r
+ public void mouseExited(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseExited(evt);\r
+ }\r
+ public void mouseEntered(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseEntered(evt);\r
+ }\r
+ });\r
+ \r
+ pDirector.add(btnManual);\r
+ \r
+ btnAuto.setToolTipText(cIDresources.getString("ActAutoTip"));\r
+ tbgDirection.add(btnAuto);\r
+ btnAuto.setAction(aAuto);\r
+ btnAuto.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_AUTO)).dimmed);\r
+ btnAuto.setName("ActAuto");\r
+ btnAuto.setSelectedIcon(new javax.swing.ImageIcon(getClass().getResource("/org/tjworld/vista/cid/media/selauto.gif")));\r
+ btnAuto.addMouseListener(new java.awt.event.MouseAdapter() {\r
+ public void mouseExited(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseExited(evt);\r
+ }\r
+ public void mouseEntered(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseEntered(evt);\r
+ }\r
+ });\r
+ \r
+ pDirector.add(btnAuto);\r
+ \r
+ btnDirected.setToolTipText(cIDresources.getString("ActDirectTip"));\r
+ tbgDirection.add(btnDirected);\r
+ btnDirected.setAction(aDirected);\r
+ btnDirected.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_DIRECTED)).dimmed);\r
+ btnDirected.setName("ActDirect");\r
+ btnDirected.setSelectedIcon(new javax.swing.ImageIcon(getClass().getResource("/org/tjworld/vista/cid/media/seldirected.gif")));\r
+ btnDirected.addMouseListener(new java.awt.event.MouseAdapter() {\r
+ public void mouseExited(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseExited(evt);\r
+ }\r
+ public void mouseEntered(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseEntered(evt);\r
+ }\r
+ });\r
+ \r
+ pDirector.add(btnDirected);\r
+ \r
+ btnScript.setToolTipText(cIDresources.getString("ActScriptTip"));\r
+ tbgDirection.add(btnScript);\r
+ btnScript.setAction(aScript);\r
+ btnScript.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_SCRIPT)).dimmed);\r
+ btnScript.setName("ActScript");\r
+ btnScript.setSelectedIcon(new javax.swing.ImageIcon(getClass().getResource("/org/tjworld/vista/cid/media/selscript.gif")));\r
+ btnScript.addMouseListener(new java.awt.event.MouseAdapter() {\r
+ public void mouseExited(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseExited(evt);\r
+ }\r
+ public void mouseEntered(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseEntered(evt);\r
+ }\r
+ });\r
+ \r
+ pDirector.add(btnScript);\r
+ \r
+ toolBar.add(pDirector);\r
+ \r
+ pConnection.setLayout(new javax.swing.BoxLayout(pConnection, javax.swing.BoxLayout.X_AXIS));\r
+ \r
+ toolBar.addSeparator();\r
+ btnConnect.setToolTipText(cIDresources.getString("ActConnectTip"));\r
+ tbgConnection.add(btnConnect);\r
+ btnConnect.setAction(aConnect);\r
+ btnConnect.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_CONNECT)).dimmed);\r
+ btnConnect.setName("ActConnect");\r
+ btnConnect.setSelectedIcon(new javax.swing.ImageIcon(getClass().getResource("/org/tjworld/vista/cid/media/selconnect.gif")));\r
+ btnConnect.addMouseListener(new java.awt.event.MouseAdapter() {\r
+ public void mouseExited(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseExited(evt);\r
+ }\r
+ public void mouseEntered(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseEntered(evt);\r
+ }\r
+ });\r
+ \r
+ pConnection.add(btnConnect);\r
+ \r
+ btnDisconnect.setSelected(true);\r
+ btnDisconnect.setToolTipText(cIDresources.getString("ActDiscTip"));\r
+ tbgConnection.add(btnDisconnect);\r
+ btnDisconnect.setAction(aDisconnect);\r
+ btnDisconnect.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_DISCONNECT)).dimmed);\r
+ btnDisconnect.setName("ActDisc");\r
+ btnDisconnect.setSelectedIcon(new javax.swing.ImageIcon(getClass().getResource("/org/tjworld/vista/cid/media/seldisconnect.gif")));\r
+ btnDisconnect.addMouseListener(new java.awt.event.MouseAdapter() {\r
+ public void mouseExited(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseExited(evt);\r
+ }\r
+ public void mouseEntered(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseEntered(evt);\r
+ }\r
+ });\r
+ \r
+ pConnection.add(btnDisconnect);\r
+ \r
+ toolBar.add(pConnection);\r
+ \r
+ pScript.setLayout(new javax.swing.BoxLayout(pScript, javax.swing.BoxLayout.X_AXIS));\r
+ \r
+ toolBar.addSeparator();\r
+ btnPlay.setToolTipText(cIDresources.getString("ActPlayTip"));\r
+ tbgPlayback.add(btnPlay);\r
+ btnPlay.setAction(aPlay);\r
+ btnPlay.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_PLAY)).dimmed);\r
+ btnPlay.setName("ActPlay");\r
+ btnPlay.setSelectedIcon(new javax.swing.ImageIcon(getClass().getResource("/org/tjworld/vista/cid/media/selplay.gif")));\r
+ btnPlay.addMouseListener(new java.awt.event.MouseAdapter() {\r
+ public void mouseExited(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseExited(evt);\r
+ }\r
+ public void mouseEntered(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseEntered(evt);\r
+ }\r
+ });\r
+ \r
+ pScript.add(btnPlay);\r
+ \r
+ btnRecord.setToolTipText(cIDresources.getString("ActRecTip"));\r
+ tbgPlayback.add(btnRecord);\r
+ btnRecord.setAction(aRecord);\r
+ btnRecord.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_RECORD)).dimmed);\r
+ btnRecord.setName("ActRec");\r
+ btnRecord.setSelectedIcon(new javax.swing.ImageIcon(getClass().getResource("/org/tjworld/vista/cid/media/selrecord.gif")));\r
+ pScript.add(btnRecord);\r
+ \r
+ btnPause.setToolTipText(cIDresources.getString("ActPauseTip"));\r
+ tbgPlayback.add(btnPause);\r
+ btnPause.setAction(aPause);\r
+ btnPause.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_PAUSE)).dimmed);\r
+ btnPause.setName("ActPause");\r
+ btnPause.setSelectedIcon(new javax.swing.ImageIcon(getClass().getResource("/org/tjworld/vista/cid/media/selpause.gif")));\r
+ btnPause.addMouseListener(new java.awt.event.MouseAdapter() {\r
+ public void mouseExited(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseExited(evt);\r
+ }\r
+ public void mouseEntered(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseEntered(evt);\r
+ }\r
+ });\r
+ \r
+ pScript.add(btnPause);\r
+ \r
+ btnStop.setSelected(true);\r
+ btnStop.setToolTipText(cIDresources.getString("ActStopTip"));\r
+ tbgPlayback.add(btnStop);\r
+ btnStop.setAction(aStop);\r
+ btnStop.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_STOP)).dimmed);\r
+ btnStop.setName("ActStop");\r
+ btnStop.setSelectedIcon(new javax.swing.ImageIcon(getClass().getResource("/org/tjworld/vista/cid/media/selstop.gif")));\r
+ btnStop.addMouseListener(new java.awt.event.MouseAdapter() {\r
+ public void mouseExited(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseExited(evt);\r
+ }\r
+ public void mouseEntered(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseEntered(evt);\r
+ }\r
+ });\r
+ \r
+ pScript.add(btnStop);\r
+ \r
+ toolBar.add(pScript);\r
+ \r
+ getContentPane().add(toolBar, java.awt.BorderLayout.NORTH);\r
+ \r
+ workPanel.setLayout(new java.awt.GridBagLayout());\r
+ java.awt.GridBagConstraints gridBagConstraints1;\r
+ \r
+ spTemplate.setDividerLocation(450);\r
+ spTemplate.setResizeWeight(0.5);\r
+ spTemplate.setMinimumSize(new java.awt.Dimension(300, 343));\r
+ spTemplate.setOneTouchExpandable(true);\r
+ spColour.setDividerLocation(213);\r
+ spColour.setLastDividerLocation(208);\r
+ spColour.setMinimumSize(new java.awt.Dimension(213, 258));\r
+ spColour.setOneTouchExpandable(true);\r
+ spColour.setPreferredSize(new java.awt.Dimension(400, 343));\r
+ colourPanel.setLayout(new java.awt.BorderLayout());\r
+ \r
+ colourPanel.setBorder(new javax.swing.border.TitledBorder(new javax.swing.border.EtchedBorder(), cIDresources.getString("tColourCntrlTitle")));\r
+ colourPanel.setMinimumSize(new java.awt.Dimension(208, 256));\r
+ colourSelectorPanel.setLayout(new java.awt.GridLayout(2, 1));\r
+ \r
+ filterSelector.setLayout(new javax.swing.BoxLayout(filterSelector, javax.swing.BoxLayout.X_AXIS));\r
+ \r
+ jIconRadioButton1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/tjworld/vista/cid/media/tFilterB21.gif")));\r
+ jIconRadioButton1.setText("1");\r
+ btnGroupFilter.add(jIconRadioButton1);\r
+ filterSelector.add(jIconRadioButton1);\r
+ \r
+ jIconRadioButton2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/tjworld/vista/cid/media/tFilterB22.gif")));\r
+ jIconRadioButton2.setText("2");\r
+ btnGroupFilter.add(jIconRadioButton2);\r
+ filterSelector.add(jIconRadioButton2);\r
+ \r
+ jIconRadioButton3.setText("3");\r
+ btnGroupFilter.add(jIconRadioButton3);\r
+ filterSelector.add(jIconRadioButton3);\r
+ \r
+ jIconRadioButton4.setText("4");\r
+ btnGroupFilter.add(jIconRadioButton4);\r
+ filterSelector.add(jIconRadioButton4);\r
+ \r
+ colourSelectorPanel.add(filterSelector);\r
+ \r
+ colourSelectorPanel.add(filterHistory);\r
+ \r
+ colourPanel.add(colourSelectorPanel, java.awt.BorderLayout.NORTH);\r
+ \r
+ sysColorChooser.setMinimumSize(new java.awt.Dimension(128, 192));\r
+ colourPanel.add(sysColorChooser, java.awt.BorderLayout.CENTER);\r
+ \r
+ tintPanel.setBorder(new javax.swing.border.TitledBorder(new javax.swing.border.EtchedBorder(), cIDresources.getString("tTintTitle")));\r
+ tintPanel.setName("tTint");\r
+ sliderTint.setMajorTickSpacing(10);\r
+ sliderTint.setMinorTickSpacing(5);\r
+ sliderTint.setPaintTicks(true);\r
+ sliderTint.setToolTipText(cIDresources.getString("tTintTip"));\r
+ sliderTint.setMinimumSize(new java.awt.Dimension(50, 27));\r
+ sliderTint.setName("tTint");\r
+ sliderTint.setPreferredSize(new java.awt.Dimension(128, 27));\r
+ sliderTint.addChangeListener(new javax.swing.event.ChangeListener() {\r
+ public void stateChanged(javax.swing.event.ChangeEvent evt) {\r
+ sliderTintStateChanged(evt);\r
+ }\r
+ });\r
+ \r
+ sliderTint.addKeyListener(new java.awt.event.KeyAdapter() {\r
+ public void keyPressed(java.awt.event.KeyEvent evt) {\r
+ sliderTintKeyPressed(evt);\r
+ }\r
+ });\r
+ \r
+ tintPanel.add(sliderTint);\r
+ \r
+ colourPanel.add(tintPanel, java.awt.BorderLayout.SOUTH);\r
+ \r
+ spColour.setLeftComponent(colourPanel);\r
+ \r
+ filterLayerPane.setMinimumSize(new java.awt.Dimension(48, 48));\r
+ filterLayerPane.setPreferredSize(new java.awt.Dimension(256, 343));\r
+ // filterLayerPane.setLayout(new GridLayout(0,1));\r
+ filterLayerPane.addComponentListener(new java.awt.event.ComponentAdapter() {\r
+ public void componentResized(java.awt.event.ComponentEvent evt) {\r
+ filterLayerPaneComponentResized(evt);\r
+ }\r
+ });\r
+ \r
+ templatePanel.setLayout(new java.awt.BorderLayout());\r
+ \r
+ templatePanel.setBorder(new javax.swing.border.TitledBorder(new javax.swing.border.EtchedBorder(), cIDresources.getString("tTemplTitle")));\r
+ templatePanel.setName("tTempl");\r
+ templatePanel.setPreferredSize(new java.awt.Dimension(343, 343));\r
+ templatePanel.addComponentListener(new java.awt.event.ComponentAdapter() {\r
+ public void componentResized(java.awt.event.ComponentEvent evt) {\r
+ templatePanelComponentResized(evt);\r
+ }\r
+ });\r
+ \r
+ jTextPane3.setBorder(new javax.swing.border.EtchedBorder());\r
+ jTextPane3.setEditable(false);\r
+ jTextPane3.setText("This is the default Reading template. When fully implemented it will be filled by randomly generated words so the Subject cannot predict, from familiarity or pattern, the sequence of words.\nThe Subject is timed reading the words, and the words-per-minute reading rate is determined. This is done repeatedly for the set of Profiles the Subject finds most comfortable, as well as for the control Profile which is usually simple black text on a white background.\n");\r
+ jTextPane3.setMargin(new java.awt.Insets(8, 8, 8, 8));\r
+ jTextPane3.setMinimumSize(new java.awt.Dimension(16, 16));\r
+ jTextPane3.setPreferredSize(new java.awt.Dimension(256, 256));\r
+ jTextPane3.addComponentListener(new java.awt.event.ComponentAdapter() {\r
+ public void componentResized(java.awt.event.ComponentEvent evt) {\r
+ jTextPane3ComponentResized(evt);\r
+ }\r
+ });\r
+ \r
+ templatePanel.add(jTextPane3, java.awt.BorderLayout.CENTER);\r
+ \r
+ filterLayerPane.add(templatePanel, javax.swing.JLayeredPane.DEFAULT_LAYER);\r
+ templatePanel.setBounds(0, 0, 343, 343);\r
+ \r
+ spColour.setRightComponent(filterLayerPane);\r
+ \r
+ spTemplate.setLeftComponent(spColour);\r
+ \r
+ templateControlPanel.setLayout(new java.awt.BorderLayout());\r
+ \r
+ templateControlPanel.setBorder(new javax.swing.border.TitledBorder(new javax.swing.border.EtchedBorder(), cIDresources.getString("tTemplCntrlTitle")));\r
+ templateControlPanel.setName("tTemplCntrl");\r
+ templateSelectorPanel.setLayout(new java.awt.GridLayout(2, 1));\r
+ \r
+ templateSelector.setLayout(new javax.swing.BoxLayout(templateSelector, javax.swing.BoxLayout.X_AXIS));\r
+ \r
+ jIconRadioButton6.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/tjworld/vista/cid/media/tFilterBA1.gif")));\r
+ jIconRadioButton6.setText("1");\r
+ btnGroupTemplate.add(jIconRadioButton6);\r
+ templateSelector.add(jIconRadioButton6);\r
+ \r
+ jIconRadioButton7.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/tjworld/vista/cid/media/tFilterBA2.gif")));\r
+ jIconRadioButton7.setText("2");\r
+ btnGroupTemplate.add(jIconRadioButton7);\r
+ templateSelector.add(jIconRadioButton7);\r
+ \r
+ jIconRadioButton8.setText("3");\r
+ btnGroupTemplate.add(jIconRadioButton8);\r
+ templateSelector.add(jIconRadioButton8);\r
+ \r
+ jIconRadioButton9.setText("4");\r
+ btnGroupTemplate.add(jIconRadioButton9);\r
+ templateSelector.add(jIconRadioButton9);\r
+ \r
+ templateSelectorPanel.add(templateSelector);\r
+ \r
+ templateSelectorPanel.add(templateHistory);\r
+ \r
+ templateControlPanel.add(templateSelectorPanel, java.awt.BorderLayout.NORTH);\r
+ \r
+ ratingPanel.setBorder(new javax.swing.border.TitledBorder(new javax.swing.border.EtchedBorder(), cIDresources.getString("tRatingTitle")));\r
+ sliderRating.setPaintTicks(true);\r
+ sliderRating.setPreferredSize(new java.awt.Dimension(100, 27));\r
+ ratingPanel.add(sliderRating);\r
+ \r
+ templateControlPanel.add(ratingPanel, java.awt.BorderLayout.SOUTH);\r
+ \r
+ spTemplate.setRightComponent(templateControlPanel);\r
+ \r
+ gridBagConstraints1 = new java.awt.GridBagConstraints();\r
+ gridBagConstraints1.gridx = 0;\r
+ gridBagConstraints1.gridy = 0;\r
+ gridBagConstraints1.fill = java.awt.GridBagConstraints.BOTH;\r
+ gridBagConstraints1.anchor = java.awt.GridBagConstraints.NORTH;\r
+ gridBagConstraints1.weightx = 0.25;\r
+ gridBagConstraints1.weighty = 0.5;\r
+ workPanel.add(spTemplate, gridBagConstraints1);\r
+ \r
+ statusLine.setLayout(new javax.swing.BoxLayout(statusLine, javax.swing.BoxLayout.X_AXIS));\r
+ \r
+ statusMessage.setText(cIDresources.getString("msgVistaBuild"));\r
+ statusMessage.setBorder(new javax.swing.border.BevelBorder(javax.swing.border.BevelBorder.LOWERED));\r
+ statusMessage.setMaximumSize(new java.awt.Dimension(256, 21));\r
+ statusMessage.setMinimumSize(new java.awt.Dimension(128, 21));\r
+ statusMessage.setPreferredSize(new java.awt.Dimension(256, 21));\r
+ statusLine.add(statusMessage);\r
+ \r
+ statusRed.setFont(new java.awt.Font("Dialog", 1, 11));\r
+ statusRed.setForeground(java.awt.Color.red);\r
+ statusRed.setMaximum(255);\r
+ statusRed.setValue(128);\r
+ statusRed.setBorder(new javax.swing.border.BevelBorder(javax.swing.border.BevelBorder.LOWERED));\r
+ statusRed.setPreferredSize(new java.awt.Dimension(64, 21));\r
+ statusRed.setString("128");\r
+ statusRed.setStringPainted(true);\r
+ statusLine.add(statusRed);\r
+ \r
+ statusGreen.setFont(new java.awt.Font("Dialog", 1, 11));\r
+ statusGreen.setForeground(java.awt.Color.green);\r
+ statusGreen.setMaximum(255);\r
+ statusGreen.setValue(128);\r
+ statusGreen.setBorder(new javax.swing.border.BevelBorder(javax.swing.border.BevelBorder.LOWERED));\r
+ statusGreen.setPreferredSize(new java.awt.Dimension(64, 21));\r
+ statusGreen.setString("128");\r
+ statusGreen.setStringPainted(true);\r
+ statusLine.add(statusGreen);\r
+ \r
+ statusBlue.setFont(new java.awt.Font("Dialog", 1, 11));\r
+ statusBlue.setForeground(java.awt.Color.blue);\r
+ statusBlue.setMaximum(255);\r
+ statusBlue.setValue(128);\r
+ statusBlue.setBorder(new javax.swing.border.BevelBorder(javax.swing.border.BevelBorder.LOWERED));\r
+ statusBlue.setPreferredSize(new java.awt.Dimension(64, 21));\r
+ statusBlue.setString("128");\r
+ statusBlue.setStringPainted(true);\r
+ statusLine.add(statusBlue);\r
+ \r
+ statusTint.setFont(new java.awt.Font("Dialog", 1, 11));\r
+ statusTint.setValue(50);\r
+ statusTint.setBorder(new javax.swing.border.BevelBorder(javax.swing.border.BevelBorder.LOWERED));\r
+ statusTint.setStringPainted(true);\r
+ statusLine.add(statusTint);\r
+ \r
+ statusIconPanel.setLayout(new javax.swing.BoxLayout(statusIconPanel, javax.swing.BoxLayout.X_AXIS));\r
+ \r
+ statusIconPanel.setBorder(new javax.swing.border.BevelBorder(javax.swing.border.BevelBorder.LOWERED));\r
+ statusIconModel.setIcon(((ToolIconPair)vToolIcons.get(IC_1UP)).active);\r
+ statusIconModel.setToolTipText(cIDresources.getString("tTemplMod"));\r
+ statusIconModel.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_1UP)).active);\r
+ statusIconPanel.add(statusIconModel);\r
+ \r
+ statusIconEyes.setIcon(((ToolIconPair)vToolIcons.get(IC_BOTH_EYES)).active);\r
+ statusIconEyes.setToolTipText(cIDresources.getString("tEyeMod"));\r
+ statusIconEyes.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_BOTH_EYES)).active);\r
+ statusIconPanel.add(statusIconEyes);\r
+ \r
+ statusIconTemplate.setIcon(((ToolIconPair)vToolIcons.get(IC_READING)).active);\r
+ statusIconTemplate.setToolTipText(cIDresources.getString("tTemplMod"));\r
+ statusIconTemplate.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_READING)).active);\r
+ statusIconPanel.add(statusIconTemplate);\r
+ \r
+ statusIconColourModel.setIcon(((ToolIconPair)vToolIcons.get(IC_HSB)).active);\r
+ statusIconColourModel.setToolTipText(cIDresources.getString("tColMod"));\r
+ statusIconColourModel.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_HSB)).active);\r
+ statusIconPanel.add(statusIconColourModel);\r
+ \r
+ statusIconColourView.setIcon(((ToolIconPair)vToolIcons.get(IC_COLOR_CHOOSER)).active);\r
+ statusIconColourView.setToolTipText(cIDresources.getString("tColView"));\r
+ statusIconColourView.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_COLOR_CHOOSER)).active);\r
+ statusIconPanel.add(statusIconColourView);\r
+ \r
+ statusIconDirector.setIcon(((ToolIconPair)vToolIcons.get(IC_MANUAL)).active);\r
+ statusIconDirector.setToolTipText(cIDresources.getString("tDirector"));\r
+ statusIconDirector.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_MANUAL)).active);\r
+ statusIconPanel.add(statusIconDirector);\r
+ \r
+ statusIconFilter.setIcon(((ToolIconPair)vToolIcons.get(IC_FILTER_TEMPLATE)).active);\r
+ statusIconFilter.setToolTipText(cIDresources.getString("mOptFltName"));\r
+ statusIconFilter.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_FILTER_TEMPLATE)).active);\r
+ statusIconPanel.add(statusIconFilter);\r
+ \r
+ statusIconLanguage.setIcon(((ToolIconPair)vToolIcons.get(IC_LANG_BRITISH)).active);\r
+ statusIconLanguage.setToolTipText(cIDresources.getString("mOptLangName"));\r
+ statusIconLanguage.setDisabledIcon(((ToolIconPair)vToolIcons.get(IC_LANG_BRITISH)).active);\r
+ statusIconPanel.add(statusIconLanguage);\r
+ \r
+ statusLine.add(statusIconPanel);\r
+ \r
+ statusState.setText(cIDresources.getString("msgStatRdy"));\r
+ statusState.setBorder(new javax.swing.border.BevelBorder(javax.swing.border.BevelBorder.LOWERED));\r
+ statusState.setMaximumSize(new java.awt.Dimension(39, 21));\r
+ statusState.setMinimumSize(new java.awt.Dimension(39, 21));\r
+ statusState.setPreferredSize(new java.awt.Dimension(39, 21));\r
+ statusLine.add(statusState);\r
+ \r
+ gridBagConstraints1 = new java.awt.GridBagConstraints();\r
+ gridBagConstraints1.gridx = 0;\r
+ gridBagConstraints1.gridy = 1;\r
+ gridBagConstraints1.fill = java.awt.GridBagConstraints.BOTH;\r
+ gridBagConstraints1.anchor = java.awt.GridBagConstraints.NORTH;\r
+ gridBagConstraints1.weightx = 0.25;\r
+ workPanel.add(statusLine, gridBagConstraints1);\r
+ \r
+ getContentPane().add(workPanel, java.awt.BorderLayout.CENTER);\r
+ \r
+ setJMenuBar(mbMain);\r
+ pack();\r
+ }//GEN-END:initComponents\r
+\r
+ private void mHelpFilterActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mHelpFilterActionPerformed\r
+ float alpha = vfFilter.getAlpha();\r
+ helpWindow.setVistaColour(vfFilter.getBackground(), alpha);\r
+ helpWindow.setVista(mHelpFilter.isSelected());\r
+ }//GEN-LAST:event_mHelpFilterActionPerformed\r
+\r
+ private void mHelpDockActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mHelpDockActionPerformed\r
+ if(helpWindow != null) // copy selected state from menu item to Help window\r
+ helpWindow.setDocking(mHelpDock.isSelected());\r
+ }//GEN-LAST:event_mHelpDockActionPerformed\r
+\r
+ private void formComponentMoved(java.awt.event.ComponentEvent evt) {//GEN-FIRST:event_formComponentMoved\r
+ showHelp(0, true, false, false);\r
+ }//GEN-LAST:event_formComponentMoved\r
+\r
+ private void mHelpIndexActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mHelpIndexActionPerformed\r
+ showHelp(xhtmlHelp.TAB_INDEX, false, true, true);\r
+ }//GEN-LAST:event_mHelpIndexActionPerformed\r
+\r
+\r
+ /** Catches changes to the CID window frame\r
+ *\r
+ * Intended to allow one Locale-change to the window frame as a result of the\r
+ * user changing the Language, to be caught and then propagated to all other\r
+ * Locale-sensitive components.\r
+ *\r
+ * @param evt The ProperyChangeEvent - usually a 'locale' property event\r
+ */\r
+ private void formPropertyChange(java.beans.PropertyChangeEvent evt) {//GEN-FIRST:event_formPropertyChange\r
+ if(evt.getPropertyName() == "locale") { // the application(or applet) Locale has been changed\r
+ if(debugging) System.out.println("Locale changed from " + ((java.util.Locale)evt.getOldValue()).getDisplayLanguage() + " to " + ((java.util.Locale)evt.getNewValue()).getDisplayLanguage());\r
+ changeLocale((java.util.Locale)evt.getNewValue()); // do a dynamic change to all components now\r
+ }\r
+ }//GEN-LAST:event_formPropertyChange\r
+\r
+ private void mToolbarToolBarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mToolbarToolBarActionPerformed\r
+ toolBar.setVisible(mToolbarToolBar.isSelected()); // show or hide the toolbar\r
+ }//GEN-LAST:event_mToolbarToolBarActionPerformed\r
+\r
+ /** Catch various keyboard accelerators when the Tint slider has focus\r
+ *\r
+ * Cursor (arrow) keys on the their own move the slider 1%\r
+ * with SHIFT key, moves 2%\r
+ * with ALT key, moves 5%\r
+ * with CTRL key, moves 10%\r
+ *\r
+ * NumPad keys + and - control direction\r
+ *\r
+ * NumPad 5 resets slider to central point\r
+ *\r
+ * Intended that these keys will be available as Application-wide accelerators\r
+ * because when the Slider doesn't have keyboard focus the arrow keys are needed\r
+ * for Focus naviagtion and other core activities.\r
+ */\r
+ private void sliderTintKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_sliderTintKeyPressed\r
+ boolean abVal = false;\r
+ int dir = 0, newVal = 0;\r
+ int step = 1; // default stepping is 1\r
+ \r
+ // adjust the Tint from the keyboard\r
+ switch(evt.getModifiers()) { // set the stepping value\r
+ case ActionEvent.SHIFT_MASK: // shift key\r
+ step = 2;\r
+ break;\r
+ case ActionEvent.ALT_MASK: // alt key\r
+ step = 5;\r
+ break;\r
+ case ActionEvent.CTRL_MASK: // ctrl key\r
+ step = 10;\r
+ break;\r
+ }\r
+ \r
+ switch(evt.getKeyCode()) { // set the direction\r
+ case KeyEvent.VK_ADD: // num-pad key +\r
+ dir = 1;\r
+ break;\r
+ case KeyEvent.VK_SUBTRACT: // num-pad key -\r
+ dir = -1;\r
+ break;\r
+ case KeyEvent.VK_NUMPAD5: // reset slider to central position...\r
+ case KeyEvent.VK_CLEAR: // ... allow for NumLock on or off\r
+ newVal = sliderTint.getMinimum() + ((sliderTint.getMaximum() - sliderTint.getMinimum())/2);\r
+ abVal = true; // indicate absolute value is being set\r
+ break;\r
+ }\r
+ if(dir != 0) { // don't do anything if one of the adjuster keys wasn't pressed\r
+ newVal = sliderTint.getValue() + (dir * step); // calculate the new value\r
+ if(newVal > sliderTint.getMaximum()) // adjust it if too high\r
+ newVal = sliderTint.getMaximum();\r
+ else if(newVal < sliderTint.getMinimum()) // or if too low\r
+ newVal = sliderTint.getMinimum();\r
+ sliderTint.setValue(newVal); // change the value\r
+ }\r
+ else if(abVal) // set an absolute value\r
+ sliderTint.setValue(newVal);\r
+ }//GEN-LAST:event_sliderTintKeyPressed\r
+\r
+ /** show or hide the Script buttons on the tool bar */\r
+ private void mToolbarScriptActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mToolbarScriptActionPerformed\r
+ pScript.setVisible(mToolbarScript.isSelected());\r
+ }//GEN-LAST:event_mToolbarScriptActionPerformed\r
+\r
+ /** show or hide the Remote Connection buttons on the tool bar */\r
+ private void mToolbarConnectionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mToolbarConnectionActionPerformed\r
+ pConnection.setVisible(mToolbarConnection.isSelected());\r
+ }//GEN-LAST:event_mToolbarConnectionActionPerformed\r
+\r
+ /** show or hide the Director buttons on the tool bar */\r
+ private void mToolbarDirectorActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mToolbarDirectorActionPerformed\r
+ pDirector.setVisible(mToolbarDirector.isSelected());\r
+ }//GEN-LAST:event_mToolbarDirectorActionPerformed\r
+\r
+ private void mToolbarColourViewActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mToolbarColourViewActionPerformed\r
+ pColourView.setVisible(mToolbarColourView.isSelected());\r
+ }//GEN-LAST:event_mToolbarColourViewActionPerformed\r
+\r
+ /** show or hide the Colour Model buttons on the tool bar */\r
+ private void mToolbarColourModelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mToolbarColourModelActionPerformed\r
+ pColourModel.setVisible(mToolbarColourModel.isSelected());\r
+ }//GEN-LAST:event_mToolbarColourModelActionPerformed\r
+\r
+ /** show or hide the Template buttons on the tool bar */\r
+ private void mToolbarTemplateActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mToolbarTemplateActionPerformed\r
+ pTemplate.setVisible(mToolbarTemplate.isSelected());\r
+ }//GEN-LAST:event_mToolbarTemplateActionPerformed\r
+\r
+ /** show or hide the Eye Model buttons on the tool bar */\r
+ private void mToolbarEyesActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mToolbarEyesActionPerformed\r
+ pEyes.setVisible(mToolbarEyes.isSelected());\r
+ }//GEN-LAST:event_mToolbarEyesActionPerformed\r
+\r
+ private void mToolbarModelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mToolbarModelActionPerformed\r
+ pModel.setVisible(mToolbarModel.isSelected());\r
+ }//GEN-LAST:event_mToolbarModelActionPerformed\r
+\r
+ /** show or hide the Profile buttons on the tool bar */\r
+ private void mToolbarProfileActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mToolbarProfileActionPerformed\r
+ pProfile.setVisible(mToolbarProfile.isSelected());\r
+ }//GEN-LAST:event_mToolbarProfileActionPerformed\r
+\r
+ /** Listen for potentional context menu requests (platform-specific activation sequence) \r
+ * @param evt The MouseEvent\r
+ * @see MouseEvent#isPoupTrigger()\r
+ */\r
+private void toolBarMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_toolBarMouseReleased\r
+ if(evt.isPopupTrigger()) showToolbarPopup(evt); // only show if event conforms to platform context gesture\r
+}//GEN-LAST:event_toolBarMouseReleased\r
+\r
+ /** Listen for potentional context menu requests (platform-specific activation sequence) \r
+ * @param evt The MouseEvent\r
+ * @see MouseEvent#isPoupTrigger()\r
+ */\r
+private void toolBarMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_toolBarMousePressed\r
+ if(evt.isPopupTrigger()) showToolbarPopup(evt); // only show if event conforms to platform context gesture\r
+}//GEN-LAST:event_toolBarMousePressed\r
+\r
+ /** Show Toolbar customization Popup \r
+ * Conditional on receiving environment-specific context gesture.\r
+ *\r
+ * Because the JPopUp belonging to the mOptionsToolbar JMenu is being 'borrowed'\r
+ * we must make sure to reset the invoker after we've used it so it's owner\r
+ * can use it again.\r
+ * \r
+ * @param evt The MouseEvent\r
+ */\r
+ private void showToolbarPopup(java.awt.event.MouseEvent evt) {\r
+ Component c = toolBarPopup.getInvoker(); // remember the original invoker\r
+ toolBarPopup.show(evt.getComponent(), evt.getX(), evt.getY());\r
+ toolBarPopup.setInvoker(c); // restore the invoker\r
+ }\r
+\r
+ /** Central 'Template' panel isn't managed by a Layout Manager\r
+ * When the parent container resizes, <code>templatePanel</code> must ensure it's\r
+ * child components are all resized too.\r
+ *\r
+ * @param evt The ComponentEvent\r
+ */\r
+ private void templatePanelComponentResized(java.awt.event.ComponentEvent evt) {//GEN-FIRST:event_templatePanelComponentResized\r
+ Dimension dim = templatePanel.getSize(); // container size\r
+ Insets insets = templatePanel.getInsets(); // unavailable margins\r
+ dim.width -= insets.left + insets.right; // adjust size to take account of insets\r
+ dim.height -= insets.top + insets.bottom;\r
+ jTextPane3.setSize(dim); // fit the child component exactly into the panel\r
+ }//GEN-LAST:event_templatePanelComponentResized\r
+\r
+ private void jTextPane3ComponentResized(java.awt.event.ComponentEvent evt) {//GEN-FIRST:event_jTextPane3ComponentResized\r
+ jTextPane3.revalidate(); // cause the parent container(s) to re-layout child components\r
+ jTextPane3.repaint(); // and then make sure the resized pane is shown on screen\r
+ }//GEN-LAST:event_jTextPane3ComponentResized\r
+\r
+ /** When the mouse leaves a tool bar button, causes the button border to be undrawn\r
+ * Single method which is called by all buttons wanting this functionality\r
+ * @param evt The MouseEvent\r
+ */\r
+ private void toolBarBtnMouseExited(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_toolBarBtnMouseExited\r
+ // whichever tool bar button, remove the border because the mouse has moved away\r
+ ((AbstractButton)evt.getSource()).setBorderPainted(false);\r
+ \r
+ }//GEN-LAST:event_toolBarBtnMouseExited\r
+\r
+ /** When the mouse is over a tool bar button, causes the button border to be drawn\r
+ * Single method which is called by all buttons wanting this functionality\r
+ * @param evt The MouseEvent\r
+ */\r
+ private void toolBarBtnMouseEntered(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_toolBarBtnMouseEntered\r
+ // whichever tool bar button, show the mouse is over it\r
+ ((javax.swing.AbstractButton)evt.getSource()).setBorderPainted(true);\r
+ }//GEN-LAST:event_toolBarBtnMouseEntered\r
+\r
+ /** Show the application's Help/About dialog\r
+ * @param evt The ActionEvent\r
+ */\r
+ private void mHelpAboutActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mHelpAboutActionPerformed\r
+ if(aboutDialog == null)\r
+ aboutDialog = new CIDAbout(this, true);\r
+\r
+ aboutDialog.setLocation(getCentralLocation(aboutDialog, frameCID));\r
+ aboutDialog.setVisible(true); // show the (modal) dialog\r
+ }//GEN-LAST:event_mHelpAboutActionPerformed\r
+ \r
+ /** Responds to changes in the transparency of the VisTA filter\r
+ *\r
+ * Gets the new tint and applies it to the VisTA filter and reflects the value to the\r
+ * status line tint-indicator progress bar.\r
+ *\r
+ * @param evt The ChangeEvent\r
+ */\r
+ private void sliderTintStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_sliderTintStateChanged\r
+ int value = sliderTint.getValue(); // new tint %\r
+ vfFilter.setAlpha(((float)value)/100); // apply it to the VisTA filter panel\r
+ statusTint.setValue(value); // and reflect the value in the status-line progress bar\r
+ }//GEN-LAST:event_sliderTintStateChanged\r
+\r
+ /** <code>filterLayerPane</code> cannot use a regular Layout Manager because it needs\r
+ * to place the VisTA <code>vfFilter</code> transparent 'glass' pane completely over\r
+ * all other components.\r
+ *\r
+ * Therefore, when <code>filterLayerPane</code> is resized, the change has to be\r
+ * propagated manually to the glass pane and the active Template panel, so they\r
+ * fill the <code>filterLayerPane</code> completely.\r
+ */\r
+ private void filterLayerPaneComponentResized(java.awt.event.ComponentEvent evt) {//GEN-FIRST:event_filterLayerPaneComponentResized\r
+ Dimension dim = filterLayerPane.getSize(); // the new size\r
+ if(mFilterTemplate.isSelected()) vfFilter.setSize(dim); // tell the VisTA filter if it's attached to the Template\r
+ templatePanel.setSize(dim); // tell the Template pane\r
+ }//GEN-LAST:event_filterLayerPaneComponentResized\r
+\r
+ private void sysColorChooserStateChanged(ChangeEvent e) {\r
+ Color newColor = sysColorChooser.getColor();\r
+ vfFilter.setBackground(newColor);\r
+ statusRed.setValue(newColor.getRed());\r
+ statusRed.setString(Integer.toString(newColor.getRed()));\r
+ statusGreen.setValue(newColor.getGreen());\r
+ statusGreen.setString(Integer.toString(newColor.getGreen()));\r
+ statusBlue.setValue(newColor.getBlue());\r
+ statusBlue.setString(Integer.toString(newColor.getBlue()));\r
+ }\r
+\r
+ /** Calculate the top-left position that will place a component in the center of the screen \r
+ * @param child Component that requires positioning\r
+ * @return Top-Left co-ordinate\r
+ */\r
+ public Point getCentralScreenLocation(Component child) {\r
+ Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();\r
+ Dimension childSize = child.getSize();\r
+ return new Point(screenSize.width/2 - childSize.width/2, screenSize.height/2 - childSize.height/2);\r
+ }\r
+\r
+ /** Calculate the top-left position that will place a component in the center of a container\r
+ * @param child Component that requires positioning\r
+ * @param container Component to position child relative to\r
+ * @return Top-Left co-ordinate of child\r
+ */\r
+ public Point getCentralLocation(Component child, Component container) {\r
+ Dimension containerSize = container.getSize();\r
+ Dimension childSize = child.getSize();\r
+ return new Point(container.getX() + (containerSize.width/2 - childSize.width/2), container.getY() + (containerSize.height/2 - childSize.height/2));\r
+ }\r
+ /** Exit the Application\r
+ * @param evt The WindowEvent\r
+ */\r
+ private void exitForm(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_exitForm\r
+ if(parent == null) System.exit(0); // running as an application; safe to close down Java Virtual Machine\r
+ else setVisible(false); // running as an applet; just hide\r
+ }//GEN-LAST:event_exitForm\r
+\r
+ // Variables declaration - do not modify//GEN-BEGIN:variables\r
+ private javax.swing.JMenuBar mbMain;\r
+ private javax.swing.JMenu mProfile;\r
+ private javax.swing.JMenuItem mProfileNew;\r
+ private javax.swing.JMenuItem mProfileOpen;\r
+ private javax.swing.JMenuItem mProfileSave;\r
+ private javax.swing.JMenuItem mProfileSaveAs;\r
+ private javax.swing.JMenuItem mProfileDelete;\r
+ private javax.swing.JSeparator mProfileSeparator1;\r
+ private javax.swing.JMenuItem mProfileToVista;\r
+ private javax.swing.JSeparator mProfileSeparator2;\r
+ private javax.swing.JMenuItem mProfileFromCookie;\r
+ private javax.swing.JMenuItem mProfileToCookie;\r
+ private javax.swing.JMenuItem mProfileCreateFilter;\r
+ private javax.swing.JMenuItem mProfileWeb;\r
+ private javax.swing.JSeparator mProfileSeparator3;\r
+ private javax.swing.JMenuItem mProfilePrint;\r
+ private javax.swing.JMenuItem mProfilePageSetup;\r
+ private javax.swing.JSeparator mProfileSeparator4;\r
+ private javax.swing.JMenuItem mProfileProperties;\r
+ private javax.swing.JMenu mModel;\r
+ private javax.swing.JRadioButtonMenuItem mModel1;\r
+ private javax.swing.JRadioButtonMenuItem mModel2;\r
+ private javax.swing.JRadioButtonMenuItem mModelAlternate;\r
+ private javax.swing.JSeparator jSeparator9;\r
+ private javax.swing.JRadioButtonMenuItem mModelBothEyes;\r
+ private javax.swing.JRadioButtonMenuItem mModelEyesSeparate;\r
+ private javax.swing.JMenu mTemplate;\r
+ private javax.swing.JRadioButtonMenuItem mTemplateReading;\r
+ private javax.swing.JRadioButtonMenuItem mTemplatePattern;\r
+ private javax.swing.JRadioButtonMenuItem mTemplateImage;\r
+ private javax.swing.JMenu mColour;\r
+ private javax.swing.JRadioButtonMenuItem mColourRGB;\r
+ private javax.swing.JRadioButtonMenuItem mColourHSB;\r
+ private javax.swing.JRadioButtonMenuItem mColourCYMK;\r
+ private javax.swing.JSeparator jSeparator7;\r
+ private javax.swing.JRadioButtonMenuItem mColourWheel;\r
+ private javax.swing.JRadioButtonMenuItem mColourTriangle;\r
+ private javax.swing.JRadioButtonMenuItem mColourCube;\r
+ private javax.swing.JRadioButtonMenuItem mColourSystemChooser;\r
+ private javax.swing.JRadioButtonMenuItem mColourSwatch;\r
+ private javax.swing.JMenu mDirector;\r
+ private javax.swing.JRadioButtonMenuItem mDirectorManual;\r
+ private javax.swing.JRadioButtonMenuItem mDirectorAuto;\r
+ private javax.swing.JRadioButtonMenuItem mDirectorDirect;\r
+ private javax.swing.JRadioButtonMenuItem mDirectorScript;\r
+ private javax.swing.JMenu mOptions;\r
+ private javax.swing.JMenu mOptionsReading;\r
+ private javax.swing.JMenuItem mReadingChoose;\r
+ private javax.swing.JMenuItem mReadingCustomize;\r
+ private javax.swing.JMenuItem mReadingPreferences;\r
+ private javax.swing.JMenu mOptionsPatterns;\r
+ private javax.swing.JMenuItem mPatternsChoose;\r
+ private javax.swing.JMenuItem mPatternsCustomize;\r
+ private javax.swing.JMenuItem mPatternsPreferences;\r
+ private javax.swing.JMenu mOptionsImages;\r
+ private javax.swing.JMenuItem mImgChoose;\r
+ private javax.swing.JMenuItem mImgCustomize;\r
+ private javax.swing.JMenuItem mImgPreferences;\r
+ private javax.swing.JMenu mOptionsSwatches;\r
+ private javax.swing.JMenuItem mSwatchesChoose;\r
+ private javax.swing.JMenuItem mSwatchesCustomize;\r
+ private javax.swing.JMenuItem mSwatchesPreferences;\r
+ private javax.swing.JMenu mOptionsDirected;\r
+ private javax.swing.JMenuItem mDirectedConnect;\r
+ private javax.swing.JMenuItem mDirectedDisconnect;\r
+ private javax.swing.JMenuItem mDirectedPreferences;\r
+ private javax.swing.JMenu mOptionsScripted;\r
+ private javax.swing.JMenuItem mOptionsScriptedChoose;\r
+ private javax.swing.JMenuItem mOptionsScriptedPlay;\r
+ private javax.swing.JMenuItem mOptionsScriptedRecord;\r
+ private javax.swing.JMenuItem mOptionsScriptedPause;\r
+ private javax.swing.JMenuItem mOptionsScriptedStop;\r
+ private javax.swing.JMenuItem mOptionsScriptedPreferences;\r
+ private javax.swing.JMenu mOptionsFilter;\r
+ private javax.swing.JRadioButtonMenuItem mFilterTemplate;\r
+ private javax.swing.JRadioButtonMenuItem mFilterWindow;\r
+ private javax.swing.JRadioButtonMenuItem mFilterScreen;\r
+ private javax.swing.JMenu mOptionsLanguage;\r
+ private javax.swing.JRadioButtonMenuItem mLanguageDefault;\r
+ private javax.swing.JRadioButtonMenuItem mLanguageBritish;\r
+ private javax.swing.JRadioButtonMenuItem mLanguageFrench;\r
+ private javax.swing.JRadioButtonMenuItem mLanguageSpanish;\r
+ private javax.swing.JRadioButtonMenuItem mLanguageGerman;\r
+ private javax.swing.JRadioButtonMenuItem mLanguageArabicEgypt;\r
+ private javax.swing.JRadioButtonMenuItem mLanguageFarsiIran;\r
+ private javax.swing.JRadioButtonMenuItem mLanguageHindiIndia;\r
+ private javax.swing.JRadioButtonMenuItem mLanguageIndonesian;\r
+ private javax.swing.JRadioButtonMenuItem mLanguageJapanese;\r
+ private javax.swing.JRadioButtonMenuItem mLanguageDutch;\r
+ private javax.swing.JRadioButtonMenuItem mLanguagePashto;\r
+ private javax.swing.JRadioButtonMenuItem mLanguagePortuguese;\r
+ private javax.swing.JRadioButtonMenuItem mLanguageRussian;\r
+ private javax.swing.JRadioButtonMenuItem mLanguageSwedish;\r
+ private javax.swing.JRadioButtonMenuItem mLanguageUrdu;\r
+ private javax.swing.JRadioButtonMenuItem mLanguageChinese;\r
+ private javax.swing.JMenu mOptionsToolbar;\r
+ private javax.swing.JCheckBoxMenuItem mToolbarToolBar;\r
+ private javax.swing.JSeparator jSeparator1;\r
+ private javax.swing.JCheckBoxMenuItem mToolbarProfile;\r
+ private javax.swing.JCheckBoxMenuItem mToolbarModel;\r
+ private javax.swing.JCheckBoxMenuItem mToolbarEyes;\r
+ private javax.swing.JCheckBoxMenuItem mToolbarTemplate;\r
+ private javax.swing.JCheckBoxMenuItem mToolbarColourModel;\r
+ private javax.swing.JCheckBoxMenuItem mToolbarColourView;\r
+ private javax.swing.JCheckBoxMenuItem mToolbarDirector;\r
+ private javax.swing.JCheckBoxMenuItem mToolbarConnection;\r
+ private javax.swing.JCheckBoxMenuItem mToolbarScript;\r
+ private javax.swing.JMenu mOptionsLandF;\r
+ private javax.swing.JMenuItem mOptionsVistaDB;\r
+ private javax.swing.JSeparator mOptionsSeparator2;\r
+ private javax.swing.JCheckBoxMenuItem mOptionsVistaWeb;\r
+ private javax.swing.JMenu mHelp;\r
+ private javax.swing.JMenuItem mHelpContents;\r
+ private javax.swing.JMenuItem mHelpIndex;\r
+ private javax.swing.JMenuItem mHelpSearch;\r
+ private javax.swing.JMenuItem mHelpWebLink;\r
+ private javax.swing.JSeparator mHelpSeparator1;\r
+ private javax.swing.JCheckBoxMenuItem mHelpExplain;\r
+ private javax.swing.JCheckBoxMenuItem mHelpDock;\r
+ private javax.swing.JCheckBoxMenuItem mHelpFilter;\r
+ private javax.swing.JSeparator mHelpSeparator2;\r
+ private javax.swing.JMenuItem mHelpAbout;\r
+ private javax.swing.ButtonGroup btnGroupFilter;\r
+ private javax.swing.ButtonGroup btnGroupTemplate;\r
+ private javax.swing.JToolBar toolBar;\r
+ private javax.swing.JPanel pProfile;\r
+ private javax.swing.JButton btnNew;\r
+ private javax.swing.JButton btnOpenFile;\r
+ private javax.swing.JButton btnSave;\r
+ private javax.swing.JButton btnSendToVistaDB;\r
+ private javax.swing.JPanel pModel;\r
+ private javax.swing.JToggleButton btn1Up;\r
+ private javax.swing.JToggleButton btn2Up;\r
+ private javax.swing.JToggleButton btnAlternate;\r
+ private javax.swing.JPanel pEyes;\r
+ private javax.swing.JToggleButton btnEyes2;\r
+ private javax.swing.JToggleButton btnEyes1;\r
+ private javax.swing.JPanel pTemplate;\r
+ private javax.swing.JToggleButton btnReading;\r
+ private javax.swing.JToggleButton btnPatterns;\r
+ private javax.swing.JToggleButton btnImages;\r
+ private javax.swing.JPanel pColourModel;\r
+ private javax.swing.JToggleButton btnRGB;\r
+ private javax.swing.JToggleButton btnHSB;\r
+ private javax.swing.JToggleButton btnCYMK;\r
+ private javax.swing.JPanel pColourView;\r
+ private javax.swing.JToggleButton btnWheel;\r
+ private javax.swing.JToggleButton btnTriangle;\r
+ private javax.swing.JToggleButton btnQube;\r
+ private javax.swing.JToggleButton btnSystemChooser;\r
+ private javax.swing.JToggleButton btnSwatches;\r
+ private javax.swing.JPanel pDirector;\r
+ private javax.swing.JToggleButton btnManual;\r
+ private javax.swing.JToggleButton btnAuto;\r
+ private javax.swing.JToggleButton btnDirected;\r
+ private javax.swing.JToggleButton btnScript;\r
+ private javax.swing.JPanel pConnection;\r
+ private javax.swing.JToggleButton btnConnect;\r
+ private javax.swing.JToggleButton btnDisconnect;\r
+ private javax.swing.JPanel pScript;\r
+ private javax.swing.JToggleButton btnPlay;\r
+ private javax.swing.JToggleButton btnRecord;\r
+ private javax.swing.JToggleButton btnPause;\r
+ private javax.swing.JToggleButton btnStop;\r
+ private javax.swing.JPanel workPanel;\r
+ private javax.swing.JSplitPane spTemplate;\r
+ private javax.swing.JSplitPane spColour;\r
+ private javax.swing.JPanel colourPanel;\r
+ private javax.swing.JPanel colourSelectorPanel;\r
+ private javax.swing.JPanel filterSelector;\r
+ private org.tjworld.components.JIconRadioButton jIconRadioButton1;\r
+ private org.tjworld.components.JIconRadioButton jIconRadioButton2;\r
+ private org.tjworld.components.JIconRadioButton jIconRadioButton3;\r
+ private org.tjworld.components.JIconRadioButton jIconRadioButton4;\r
+ private javax.swing.JComboBox filterHistory;\r
+ private javax.swing.JColorChooser sysColorChooser;\r
+ private javax.swing.JPanel tintPanel;\r
+ private javax.swing.JSlider sliderTint;\r
+ private javax.swing.JLayeredPane filterLayerPane;\r
+ private javax.swing.JPanel templatePanel;\r
+ private javax.swing.JTextPane jTextPane3;\r
+ private javax.swing.JPanel templateControlPanel;\r
+ private javax.swing.JPanel templateSelectorPanel;\r
+ private javax.swing.JPanel templateSelector;\r
+ private org.tjworld.components.JIconRadioButton jIconRadioButton6;\r
+ private org.tjworld.components.JIconRadioButton jIconRadioButton7;\r
+ private org.tjworld.components.JIconRadioButton jIconRadioButton8;\r
+ private org.tjworld.components.JIconRadioButton jIconRadioButton9;\r
+ private javax.swing.JComboBox templateHistory;\r
+ private javax.swing.JPanel ratingPanel;\r
+ private javax.swing.JSlider sliderRating;\r
+ private javax.swing.JPanel statusLine;\r
+ private javax.swing.JLabel statusMessage;\r
+ private javax.swing.JProgressBar statusRed;\r
+ private javax.swing.JProgressBar statusGreen;\r
+ private javax.swing.JProgressBar statusBlue;\r
+ private javax.swing.JProgressBar statusTint;\r
+ private javax.swing.JPanel statusIconPanel;\r
+ private javax.swing.JButton statusIconModel;\r
+ private javax.swing.JButton statusIconEyes;\r
+ private javax.swing.JButton statusIconTemplate;\r
+ private javax.swing.JButton statusIconColourModel;\r
+ private javax.swing.JButton statusIconColourView;\r
+ private javax.swing.JButton statusIconDirector;\r
+ private javax.swing.JButton statusIconFilter;\r
+ private javax.swing.JButton statusIconLanguage;\r
+ private javax.swing.JLabel statusState;\r
+ // End of variables declaration//GEN-END:variables\r
+\r
+ /** Pairs of active & dimmed icons for common actions */ \r
+ class ToolIconPair {\r
+ /** Active icon */\r
+ public javax.swing.ImageIcon active;\r
+ /** Dimmed icon */\r
+ public javax.swing.ImageIcon dimmed;\r
+ \r
+ /** Default empty constructor */\r
+ public ToolIconPair() {\r
+ active = null;\r
+ dimmed = null;\r
+ }\r
+ \r
+ /** defines a pair of icons\r
+ * @param a The active Icon\r
+ * @param d The dimmed Icon\r
+ */\r
+ public ToolIconPair(javax.swing.ImageIcon a, javax.swing.ImageIcon d) {\r
+ active = a;\r
+ dimmed = d;\r
+ }\r
+ }\r
+ \r
+ /** Provides common mouseover hilighting services to all tool bar buttons\r
+ * Without this container class, each button would have to provide it's own\r
+ * instantiation of the <code>MouseAdapter</code> class when it registers\r
+ * a mouse listener.\r
+ */\r
+ class ToolBarButtonMouseAdapter extends java.awt.event.MouseAdapter {\r
+ /** Default empty constructor */\r
+ public ToolBarButtonMouseAdapter() {}\r
+ \r
+ /** mouse has left the house! \r
+ * @param evt A mouse event\r
+ */\r
+ public void mouseExited(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseExited(evt); // indicate mouse gone\r
+ }\r
+ /** mouse over the button \r
+ * @param evt A mouse event\r
+ */\r
+ public void mouseEntered(java.awt.event.MouseEvent evt) {\r
+ toolBarBtnMouseEntered(evt); // indicate mouse over\r
+ }\r
+ }\r
+\r
+\r
+ /** Receives an event from a selectable descendent of AbstractButton\r
+ *\r
+ * A component that fires this event MUST keep the className of the L&F it is requesting\r
+ * in it's tool tip text\r
+ *\r
+ * @param e The event caused by an item state change\r
+ */\r
+ public void itemStateChanged(java.awt.event.ItemEvent e) {\r
+ // cast to an AbstractButton so menu items and tool bar (toggle) buttons can use this same listener\r
+ javax.swing.AbstractButton item = (javax.swing.AbstractButton)e.getSource();\r
+ if(item.getClientProperty("ButtonGroup") == "LandF" && item.isSelected()) { // only make the call if this component has been selected, NOT deselected\r
+ setLookAndFeel(item.getToolTipText()); // change to the L&F which cleverly is stored in the menu item tool tip text\r
+ if(helpWindow != null) // change the help window too\r
+ helpWindow.setLookAndFeel(item.getToolTipText());\r
+ }\r
+ }\r
+\r
+ /** Choose the Java Look & Feel\r
+ * @param lf The L&F name\r
+ */ \r
+ public void setLookAndFeel(String lf) {\r
+ Cursor curCursor = getCursor(); // save the existing cursor\r
+ setCursor(new Cursor(Cursor.WAIT_CURSOR)); // let the user know this might take a while\r
+ \r
+ try { \r
+ UIManager.setLookAndFeel(lf);\r
+ \r
+ // now adjust the frame decoration depending on whether the L&F supports painting it\r
+ setVisible(false); // hide the frame while the decoration is changed\r
+ dispose(); // detatch all of the native windowing resources\r
+\r
+ if(UIManager.getLookAndFeel().getSupportsWindowDecorations()) {\r
+ setUndecorated(true); // don't use the Host window decoration\r
+ getRootPane().setWindowDecorationStyle(javax.swing.JRootPane.FRAME);\r
+ } else {\r
+ setUndecorated(false); // L&F doesn't support decorating the frame\r
+ getRootPane().setWindowDecorationStyle(javax.swing.JRootPane.NONE);\r
+ }\r
+ } catch(UnsupportedLookAndFeelException e) { // uh-oh, a problem\r
+ try {\r
+ System.err.println("Couldn't switch to " + lf + ", selecting Cross Platform instead");\r
+ UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); // try to recover gracefully\r
+ } catch(Exception g) { // major problem!\r
+ System.err.println("Couldn't return to Cross Platform L&F - eeek!");\r
+ g.printStackTrace();\r
+ } \r
+ } catch(Exception f) { // oh pooey, what do I do now?\r
+ System.err.println("Couldn't load " + lf);\r
+ f.printStackTrace();\r
+ } finally { // do this in any case\r
+ SwingUtilities.updateComponentTreeUI(this); // update the view\r
+ pack(); // make sure to adjust for potentially altered component sizes\r
+ setVisible(true);\r
+ }\r
+ \r
+ setCursor(curCursor); // restore the cursor\r
+ }\r
+\r
+ /** Run as an Application\r
+ * @param args the command line arguments\r
+ */\r
+ public static void main(String args[]) {\r
+ new CID().show(); // create and show the application - everything happens in the Event Dispatching thread\r
+ }\r
+}
\ No newline at end of file