List of usage examples for java.awt CardLayout CardLayout
public CardLayout()
From source file:com.hexidec.ekit.EkitCore.java
/** * Master Constructor/*from w ww. j a v a2 s.c o m*/ * * @param sDocument * [String] A text or HTML document to load in the editor upon * startup. * @param sStyleSheet * [String] A CSS stylesheet to load in the editor upon startup. * @param sRawDocument * [String] A document encoded as a String to load in the editor * upon startup. * @param sdocSource * [StyledDocument] Optional document specification, using * javax.swing.text.StyledDocument. * @param urlStyleSheet * [URL] A URL reference to the CSS style sheet. * @param includeToolBar * [boolean] Specifies whether the app should include the * toolbar(s). * @param showViewSource * [boolean] Specifies whether or not to show the View Source * window on startup. * @param showMenuIcons * [boolean] Specifies whether or not to show icon pictures in * menus. * @param sLanguage * [String] The language portion of the Internationalization * Locale to run Ekit in. * @param sCountry * [String] The country portion of the Internationalization * Locale to run Ekit in. * @param base64 * [boolean] Specifies whether the raw document is Base64 encoded * or not. * @param debugMode * [boolean] Specifies whether to show the Debug menu or not. * @param hasSpellChecker * [boolean] Specifies whether or not this uses the SpellChecker * module * @param multiBar * [boolean] Specifies whether to use multiple toolbars or one * big toolbar. * @param toolbarSeq * [String] Code string specifying the toolbar buttons to show. * @param keepUnknownTags * [boolean] Specifies whether or not the parser should retain * unknown tags. * @param enterBreak * [boolean] Specifies whether the ENTER key should insert breaks * instead of paragraph tags. * @param inlineEdit * [boolean] Should edit inline content only (no line breaks) */ public EkitCore(boolean isParentApplet, String sDocument, String sStyleSheet, String sRawDocument, StyledDocument sdocSource, URL urlStyleSheet, boolean includeToolBar, boolean showViewSource, boolean showMenuIcons, String sLanguage, String sCountry, boolean base64, boolean debugMode, boolean hasSpellChecker, boolean multiBar, String toolbarSeq, boolean keepUnknownTags, boolean enterBreak, boolean inlineEdit, List<HTMLDocumentBehavior> behaviors) { super(); if (behaviors != null) { this.behaviors.addAll(behaviors); } preserveUnknownTags = keepUnknownTags; enterIsBreak = enterBreak; this.inlineEdit = inlineEdit; frameHandler = new Frame(); // Determine if system clipboard is available (SecurityManager version) /* * SecurityManager secManager = System.getSecurityManager(); * if(secManager != null) { try { * secManager.checkSystemClipboardAccess(); sysClipboard = * Toolkit.getDefaultToolkit().getSystemClipboard(); } * catch(SecurityException se) { sysClipboard = null; } } */ // Obtain system clipboard if available try { sysClipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); } catch (Exception ex) { sysClipboard = null; } // Plain text DataFlavor for unformatted paste try { dfPlainText = new DataFlavor("text/plain; class=java.lang.String; charset=Unicode"); // Charsets // usually // available // include // Unicode, // UTF-16, // UTF-8, // & // US-ASCII } catch (ClassNotFoundException cnfe) { // it would be nice to use DataFlavor.plainTextFlavor, but that is // deprecated // this will not work as desired, but it will prevent errors from // being thrown later // alternately, we could flag up here that Unformatted Paste is not // available and adjust the UI accordingly // however, the odds of java.lang.String not being found are pretty // slim one imagines dfPlainText = DataFlavor.stringFlavor; } /* Localize for language */ Locale baseLocale = Locale.getDefault(); if (sLanguage != null && sCountry != null) { baseLocale = new Locale(sLanguage, sCountry); } Translatrix.init("EkitLanguageResources", baseLocale); /* Initialise system-specific control key value */ if (!(GraphicsEnvironment.isHeadless())) { CTRLKEY = Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(); } /* Create the editor kit, document, and stylesheet */ jtpMain = new EkitTextPane(); htmlKit = new ExtendedHTMLEditorKit(); htmlDoc = (ExtendedHTMLDocument) (htmlKit.createDefaultDocument()); htmlDoc.putProperty("IgnoreCharsetDirective", Boolean.TRUE); htmlDoc.setPreservesUnknownTags(preserveUnknownTags); styleSheet = htmlDoc.getStyleSheet(); htmlKit.setDefaultCursor(new Cursor(Cursor.TEXT_CURSOR)); jtpMain.setCursor(new Cursor(Cursor.TEXT_CURSOR)); /* Set up the text pane */ jtpMain.setEditorKit(htmlKit); jtpMain.setDocument(htmlDoc); // jtpMain.addMouseMotionListener(new EkitMouseMotionListener()); jtpMain.addFocusListener(this); jtpMain.setMargin(new Insets(4, 4, 4, 4)); jtpMain.addKeyListener(this); // jtpMain.setDragEnabled(true); // this causes an error in older Java // versions /* Create the source text area */ if (sdocSource == null) { jtpSource = new JTextArea(); jtpSource.setText(jtpMain.getText()); } else { jtpSource = new JTextArea(sdocSource); jtpMain.setText(jtpSource.getText()); } jtpSource.setBackground(new Color(212, 212, 212)); jtpSource.setSelectionColor(new Color(255, 192, 192)); jtpSource.setMargin(new Insets(4, 4, 4, 4)); jtpSource.getDocument().addDocumentListener(this); jtpSource.addFocusListener(this); jtpSource.setCursor(new Cursor(Cursor.TEXT_CURSOR)); jtpSource.setColumns(1024); jtpSource.setEditable(false); /* Add CaretListener for tracking caret location events */ jtpMain.addCaretListener(new CaretListener() { public void caretUpdate(CaretEvent ce) { handleCaretPositionChange(ce); } }); // Default text if (!inlineEdit) { setDocumentText("<p></p>"); } /* Set up the undo features */ undoMngr = new UndoManager(); undoAction = new UndoAction(); redoAction = new RedoAction(); jtpMain.getDocument().addUndoableEditListener(new CustomUndoableEditListener()); /* Insert raw document, if exists */ if (sRawDocument != null && sRawDocument.length() > 0) { if (base64) { jtpMain.setText(Base64Codec.decode(sRawDocument)); } else { jtpMain.setText(sRawDocument); } } jtpMain.setCaretPosition(0); jtpMain.getDocument().addDocumentListener(this); /* Import CSS from reference, if exists */ if (urlStyleSheet != null) { try { String currDocText = jtpMain.getText(); htmlDoc = (ExtendedHTMLDocument) (htmlKit.createDefaultDocument()); htmlDoc.putProperty("IgnoreCharsetDirective", Boolean.TRUE); htmlDoc.setPreservesUnknownTags(preserveUnknownTags); styleSheet = htmlDoc.getStyleSheet(); BufferedReader br = new BufferedReader(new InputStreamReader(urlStyleSheet.openStream())); styleSheet.loadRules(br, urlStyleSheet); br.close(); htmlDoc = new ExtendedHTMLDocument(styleSheet); registerDocument(htmlDoc); jtpMain.setText(currDocText); jtpSource.setText(jtpMain.getText()); } catch (Exception e) { log.error(e.getMessage(), e); } } /* Preload the specified HTML document, if exists */ if (sDocument != null) { File defHTML = new File(sDocument); if (defHTML.exists()) { try { openDocument(defHTML); } catch (Exception e) { logException("Exception in preloading HTML document", e); } } } /* Preload the specified CSS document, if exists */ if (sStyleSheet != null) { File defCSS = new File(sStyleSheet); if (defCSS.exists()) { try { openStyleSheet(defCSS); } catch (Exception e) { logException("Exception in preloading CSS stylesheet", e); } } } /* Collect the actions that the JTextPane is naturally aware of */ Hashtable<Object, Action> actions = new Hashtable<Object, Action>(); Action[] actionsArray = jtpMain.getActions(); for (Action a : actionsArray) { actions.put(a.getValue(Action.NAME), a); } /* Create shared actions */ actionFontBold = new StyledEditorKit.BoldAction(); actionFontItalic = new StyledEditorKit.ItalicAction(); actionFontUnderline = new StyledEditorKit.UnderlineAction(); actionFontStrike = new FormatAction(this, Translatrix.getTranslationString("FontStrike"), HTML.Tag.STRIKE); actionFontSuperscript = new FormatAction(this, Translatrix.getTranslationString("FontSuperscript"), HTML.Tag.SUP); actionFontSubscript = new FormatAction(this, Translatrix.getTranslationString("FontSubscript"), HTML.Tag.SUB); actionListUnordered = new ListAutomationAction(this, Translatrix.getTranslationString("ListUnordered"), HTML.Tag.UL); actionListOrdered = new ListAutomationAction(this, Translatrix.getTranslationString("ListOrdered"), HTML.Tag.OL); actionSelectFont = new SetFontFamilyAction(this, "[MENUFONTSELECTOR]"); actionAlignLeft = new AlignmentAction(Translatrix.getTranslationString("AlignLeft"), StyleConstants.ALIGN_LEFT); actionAlignCenter = new AlignmentAction(Translatrix.getTranslationString("AlignCenter"), StyleConstants.ALIGN_CENTER); actionAlignRight = new AlignmentAction(Translatrix.getTranslationString("AlignRight"), StyleConstants.ALIGN_RIGHT); actionAlignJustified = new AlignmentAction(Translatrix.getTranslationString("AlignJustified"), StyleConstants.ALIGN_JUSTIFIED); actionInsertAnchor = new CustomAction(this, Translatrix.getTranslationString("InsertAnchor") + menuDialog, HTML.Tag.A); actionClearFormat = new ClearFormatAction(this); actionSpecialChar = new SpecialCharAction(this); // actionTableButtonMenu Action actionTableInsert = new CommandAction(Translatrix.getTranslationString("InsertTable") + menuDialog, getEkitIcon("TableCreate"), CMD_TABLE_INSERT, this); Action actionTableDelete = new CommandAction(Translatrix.getTranslationString("DeleteTable"), getEkitIcon("TableDelete"), CMD_TABLE_DELETE, this); Action actionTableRow = new CommandAction(Translatrix.getTranslationString("InsertTableRow"), getEkitIcon("InsertRow"), CMD_TABLE_ROW_INSERT, this); Action actionTableRowAfter = new CommandAction(Translatrix.getTranslationString("InsertTableRowAfter"), getEkitIcon("InsertRowAfter"), CMD_TABLE_ROW_INSERT_AFTER, this); Action actionTableCol = new CommandAction(Translatrix.getTranslationString("InsertTableColumn"), getEkitIcon("InsertColumn"), CMD_TABLE_COLUMN_INSERT, this); Action actionTableColAfter = new CommandAction(Translatrix.getTranslationString("InsertTableColumnAfter"), getEkitIcon("InsertColumnAfter"), CMD_TABLE_COLUMN_INSERT_AFTER, this); Action actionTableRowDel = new CommandAction(Translatrix.getTranslationString("DeleteTableRow"), getEkitIcon("DeleteRow"), CMD_TABLE_ROW_DELETE, this); Action actionTableColDel = new CommandAction(Translatrix.getTranslationString("DeleteTableColumn"), getEkitIcon("DeleteColumn"), CMD_TABLE_COLUMN_DELETE, this); Action actionTableColFmt = new CommandAction(Translatrix.getTranslationString("FormatTableColumn"), getEkitIcon("FormatColumn"), CMD_TABLE_COLUMN_FORMAT, this); actionTableButtonMenu = new ButtonMenuAction(Translatrix.getTranslationString("TableMenu"), getEkitIcon("TableMenu"), actionTableInsert, actionTableDelete, null, actionTableRow, actionTableRowAfter, actionTableCol, actionTableColAfter, null, actionTableRowDel, actionTableColDel, null, actionTableColFmt); /* Build the menus */ /* FILE Menu */ jMenuFile = new JMenu(Translatrix.getTranslationString("File")); htMenus.put(KEY_MENU_FILE, jMenuFile); JMenuItem jmiNew = new JMenuItem(Translatrix.getTranslationString("NewDocument")); jmiNew.setActionCommand(CMD_DOC_NEW); jmiNew.addActionListener(this); jmiNew.setAccelerator(KeyStroke.getKeyStroke('N', CTRLKEY, false)); if (showMenuIcons) { jmiNew.setIcon(getEkitIcon("New")); } ; jMenuFile.add(jmiNew); JMenuItem jmiNewStyled = new JMenuItem(Translatrix.getTranslationString("NewStyledDocument")); jmiNewStyled.setActionCommand(CMD_DOC_NEW_STYLED); jmiNewStyled.addActionListener(this); if (showMenuIcons) { jmiNewStyled.setIcon(getEkitIcon("NewStyled")); } ; jMenuFile.add(jmiNewStyled); JMenuItem jmiOpenHTML = new JMenuItem(Translatrix.getTranslationString("OpenDocument") + menuDialog); jmiOpenHTML.setActionCommand(CMD_DOC_OPEN_HTML); jmiOpenHTML.addActionListener(this); jmiOpenHTML.setAccelerator(KeyStroke.getKeyStroke('O', CTRLKEY, false)); if (showMenuIcons) { jmiOpenHTML.setIcon(getEkitIcon("Open")); } ; jMenuFile.add(jmiOpenHTML); JMenuItem jmiOpenCSS = new JMenuItem(Translatrix.getTranslationString("OpenStyle") + menuDialog); jmiOpenCSS.setActionCommand(CMD_DOC_OPEN_CSS); jmiOpenCSS.addActionListener(this); jMenuFile.add(jmiOpenCSS); jMenuFile.addSeparator(); JMenuItem jmiSave = new JMenuItem(Translatrix.getTranslationString("Save")); jmiSave.setActionCommand(CMD_DOC_SAVE); jmiSave.addActionListener(this); jmiSave.setAccelerator(KeyStroke.getKeyStroke('S', CTRLKEY, false)); if (showMenuIcons) { jmiSave.setIcon(getEkitIcon("Save")); } ; jMenuFile.add(jmiSave); JMenuItem jmiSaveAs = new JMenuItem(Translatrix.getTranslationString("SaveAs") + menuDialog); jmiSaveAs.setActionCommand(CMD_DOC_SAVE_AS); jmiSaveAs.addActionListener(this); jMenuFile.add(jmiSaveAs); JMenuItem jmiSaveBody = new JMenuItem(Translatrix.getTranslationString("SaveBody") + menuDialog); jmiSaveBody.setActionCommand(CMD_DOC_SAVE_BODY); jmiSaveBody.addActionListener(this); jMenuFile.add(jmiSaveBody); JMenuItem jmiSaveRTF = new JMenuItem(Translatrix.getTranslationString("SaveRTF") + menuDialog); jmiSaveRTF.setActionCommand(CMD_DOC_SAVE_RTF); jmiSaveRTF.addActionListener(this); jMenuFile.add(jmiSaveRTF); jMenuFile.addSeparator(); JMenuItem jmiPrint = new JMenuItem(Translatrix.getTranslationString("Print")); jmiPrint.setActionCommand(CMD_DOC_PRINT); jmiPrint.addActionListener(this); jMenuFile.add(jmiPrint); jMenuFile.addSeparator(); JMenuItem jmiSerialOut = new JMenuItem(Translatrix.getTranslationString("Serialize") + menuDialog); jmiSerialOut.setActionCommand(CMD_DOC_SERIALIZE_OUT); jmiSerialOut.addActionListener(this); jMenuFile.add(jmiSerialOut); JMenuItem jmiSerialIn = new JMenuItem(Translatrix.getTranslationString("ReadFromSer") + menuDialog); jmiSerialIn.setActionCommand(CMD_DOC_SERIALIZE_IN); jmiSerialIn.addActionListener(this); jMenuFile.add(jmiSerialIn); jMenuFile.addSeparator(); JMenuItem jmiExit = new JMenuItem(Translatrix.getTranslationString("Exit")); jmiExit.setActionCommand(CMD_EXIT); jmiExit.addActionListener(this); jMenuFile.add(jmiExit); /* EDIT Menu */ jMenuEdit = new JMenu(Translatrix.getTranslationString("Edit")); htMenus.put(KEY_MENU_EDIT, jMenuEdit); if (sysClipboard != null) { // System Clipboard versions of menu commands JMenuItem jmiCut = new JMenuItem(Translatrix.getTranslationString("Cut")); jmiCut.setActionCommand(CMD_CLIP_CUT); jmiCut.addActionListener(this); jmiCut.setAccelerator(KeyStroke.getKeyStroke('X', CTRLKEY, false)); if (showMenuIcons) { jmiCut.setIcon(getEkitIcon("Cut")); } jMenuEdit.add(jmiCut); JMenuItem jmiCopy = new JMenuItem(Translatrix.getTranslationString("Copy")); jmiCopy.setActionCommand(CMD_CLIP_COPY); jmiCopy.addActionListener(this); jmiCopy.setAccelerator(KeyStroke.getKeyStroke('C', CTRLKEY, false)); if (showMenuIcons) { jmiCopy.setIcon(getEkitIcon("Copy")); } jMenuEdit.add(jmiCopy); JMenuItem jmiPaste = new JMenuItem(Translatrix.getTranslationString("Paste")); jmiPaste.setActionCommand(CMD_CLIP_PASTE); jmiPaste.addActionListener(this); jmiPaste.setAccelerator(KeyStroke.getKeyStroke('V', CTRLKEY, false)); if (showMenuIcons) { jmiPaste.setIcon(getEkitIcon("Paste")); } jMenuEdit.add(jmiPaste); JMenuItem jmiPasteX = new JMenuItem(Translatrix.getTranslationString("PasteUnformatted")); jmiPasteX.setActionCommand(CMD_CLIP_PASTE_PLAIN); jmiPasteX.addActionListener(this); jmiPasteX.setAccelerator(KeyStroke.getKeyStroke('V', CTRLKEY + KeyEvent.SHIFT_MASK, false)); if (showMenuIcons) { jmiPasteX.setIcon(getEkitIcon("PasteUnformatted")); } jMenuEdit.add(jmiPasteX); } else { // DefaultEditorKit versions of menu commands JMenuItem jmiCut = new JMenuItem(new DefaultEditorKit.CutAction()); jmiCut.setText(Translatrix.getTranslationString("Cut")); jmiCut.setAccelerator(KeyStroke.getKeyStroke('X', CTRLKEY, false)); if (showMenuIcons) { jmiCut.setIcon(getEkitIcon("Cut")); } jMenuEdit.add(jmiCut); JMenuItem jmiCopy = new JMenuItem(new DefaultEditorKit.CopyAction()); jmiCopy.setText(Translatrix.getTranslationString("Copy")); jmiCopy.setAccelerator(KeyStroke.getKeyStroke('C', CTRLKEY, false)); if (showMenuIcons) { jmiCopy.setIcon(getEkitIcon("Copy")); } jMenuEdit.add(jmiCopy); JMenuItem jmiPaste = new JMenuItem(new DefaultEditorKit.PasteAction()); jmiPaste.setText(Translatrix.getTranslationString("Paste")); jmiPaste.setAccelerator(KeyStroke.getKeyStroke('V', CTRLKEY, false)); if (showMenuIcons) { jmiPaste.setIcon(getEkitIcon("Paste")); } jMenuEdit.add(jmiPaste); JMenuItem jmiPasteX = new JMenuItem(Translatrix.getTranslationString("PasteUnformatted")); jmiPasteX.setActionCommand(CMD_CLIP_PASTE_PLAIN); jmiPasteX.addActionListener(this); jmiPasteX.setAccelerator(KeyStroke.getKeyStroke('V', CTRLKEY + KeyEvent.SHIFT_MASK, false)); if (showMenuIcons) { jmiPasteX.setIcon(getEkitIcon("PasteUnformatted")); } jMenuEdit.add(jmiPasteX); } jMenuEdit.addSeparator(); JMenuItem jmiUndo = new JMenuItem(undoAction); jmiUndo.setAccelerator(KeyStroke.getKeyStroke('Z', CTRLKEY, false)); if (showMenuIcons) { jmiUndo.setIcon(getEkitIcon("Undo")); } jMenuEdit.add(jmiUndo); JMenuItem jmiRedo = new JMenuItem(redoAction); jmiRedo.setAccelerator(KeyStroke.getKeyStroke('Y', CTRLKEY, false)); if (showMenuIcons) { jmiRedo.setIcon(getEkitIcon("Redo")); } jMenuEdit.add(jmiRedo); jMenuEdit.addSeparator(); JMenuItem jmiSelAll = new JMenuItem((Action) actions.get(DefaultEditorKit.selectAllAction)); jmiSelAll.setText(Translatrix.getTranslationString("SelectAll")); jmiSelAll.setAccelerator(KeyStroke.getKeyStroke('A', CTRLKEY, false)); jMenuEdit.add(jmiSelAll); JMenuItem jmiSelPara = new JMenuItem((Action) actions.get(DefaultEditorKit.selectParagraphAction)); jmiSelPara.setText(Translatrix.getTranslationString("SelectParagraph")); jMenuEdit.add(jmiSelPara); JMenuItem jmiSelLine = new JMenuItem((Action) actions.get(DefaultEditorKit.selectLineAction)); jmiSelLine.setText(Translatrix.getTranslationString("SelectLine")); jMenuEdit.add(jmiSelLine); JMenuItem jmiSelWord = new JMenuItem((Action) actions.get(DefaultEditorKit.selectWordAction)); jmiSelWord.setText(Translatrix.getTranslationString("SelectWord")); jMenuEdit.add(jmiSelWord); jMenuEdit.addSeparator(); JMenu jMenuEnterKey = new JMenu(Translatrix.getTranslationString("EnterKeyMenu")); jcbmiEnterKeyParag = new JCheckBoxMenuItem(Translatrix.getTranslationString("EnterKeyParag"), !enterIsBreak); jcbmiEnterKeyParag.setActionCommand(CMD_ENTER_PARAGRAPH); jcbmiEnterKeyParag.addActionListener(this); jMenuEnterKey.add(jcbmiEnterKeyParag); jcbmiEnterKeyBreak = new JCheckBoxMenuItem(Translatrix.getTranslationString("EnterKeyBreak"), enterIsBreak); jcbmiEnterKeyBreak.setActionCommand(CMD_ENTER_BREAK); jcbmiEnterKeyBreak.addActionListener(this); jMenuEnterKey.add(jcbmiEnterKeyBreak); jMenuEdit.add(jMenuEnterKey); /* VIEW Menu */ jMenuView = new JMenu(Translatrix.getTranslationString("View")); htMenus.put(KEY_MENU_VIEW, jMenuView); if (includeToolBar) { if (multiBar) { jMenuToolbars = new JMenu(Translatrix.getTranslationString("ViewToolbars")); jcbmiViewToolbarMain = new JCheckBoxMenuItem(Translatrix.getTranslationString("ViewToolbarMain"), false); jcbmiViewToolbarMain.setActionCommand(CMD_TOGGLE_TOOLBAR_MAIN); jcbmiViewToolbarMain.addActionListener(this); jMenuToolbars.add(jcbmiViewToolbarMain); jcbmiViewToolbarFormat = new JCheckBoxMenuItem( Translatrix.getTranslationString("ViewToolbarFormat"), false); jcbmiViewToolbarFormat.setActionCommand(CMD_TOGGLE_TOOLBAR_FORMAT); jcbmiViewToolbarFormat.addActionListener(this); jMenuToolbars.add(jcbmiViewToolbarFormat); jcbmiViewToolbarStyles = new JCheckBoxMenuItem( Translatrix.getTranslationString("ViewToolbarStyles"), false); jcbmiViewToolbarStyles.setActionCommand(CMD_TOGGLE_TOOLBAR_STYLES); jcbmiViewToolbarStyles.addActionListener(this); jMenuToolbars.add(jcbmiViewToolbarStyles); jMenuView.add(jMenuToolbars); } else { jcbmiViewToolbar = new JCheckBoxMenuItem(Translatrix.getTranslationString("ViewToolbar"), false); jcbmiViewToolbar.setActionCommand(CMD_TOGGLE_TOOLBAR_SINGLE); jcbmiViewToolbar.addActionListener(this); jMenuView.add(jcbmiViewToolbar); } } jcbmiViewSource = new JCheckBoxMenuItem(Translatrix.getTranslationString("ViewSource"), false); jcbmiViewSource.setActionCommand(CMD_TOGGLE_SOURCE_VIEW); jcbmiViewSource.addActionListener(this); jMenuView.add(jcbmiViewSource); /* FONT Menu */ jMenuFont = new JMenu(Translatrix.getTranslationString("Font")); htMenus.put(KEY_MENU_FONT, jMenuFont); JMenuItem jmiBold = new JMenuItem(actionFontBold); jmiBold.setText(Translatrix.getTranslationString("FontBold")); jmiBold.setAccelerator(KeyStroke.getKeyStroke('B', CTRLKEY, false)); if (showMenuIcons) { jmiBold.setIcon(getEkitIcon("Bold")); } jMenuFont.add(jmiBold); JMenuItem jmiItalic = new JMenuItem(actionFontItalic); jmiItalic.setText(Translatrix.getTranslationString("FontItalic")); jmiItalic.setAccelerator(KeyStroke.getKeyStroke('I', CTRLKEY, false)); if (showMenuIcons) { jmiItalic.setIcon(getEkitIcon("Italic")); } jMenuFont.add(jmiItalic); JMenuItem jmiUnderline = new JMenuItem(actionFontUnderline); jmiUnderline.setText(Translatrix.getTranslationString("FontUnderline")); jmiUnderline.setAccelerator(KeyStroke.getKeyStroke('U', CTRLKEY, false)); if (showMenuIcons) { jmiUnderline.setIcon(getEkitIcon("Underline")); } jMenuFont.add(jmiUnderline); JMenuItem jmiStrike = new JMenuItem(actionFontStrike); jmiStrike.setText(Translatrix.getTranslationString("FontStrike")); if (showMenuIcons) { jmiStrike.setIcon(getEkitIcon("Strike")); } jMenuFont.add(jmiStrike); JMenuItem jmiSupscript = new JMenuItem(actionFontSuperscript); if (showMenuIcons) { jmiSupscript.setIcon(getEkitIcon("Super")); } jMenuFont.add(jmiSupscript); JMenuItem jmiSubscript = new JMenuItem(actionFontSubscript); if (showMenuIcons) { jmiSubscript.setIcon(getEkitIcon("Sub")); } jMenuFont.add(jmiSubscript); jMenuFont.addSeparator(); jMenuFont.add( new JMenuItem(new FormatAction(this, Translatrix.getTranslationString("FormatBig"), HTML.Tag.BIG))); jMenuFont.add(new JMenuItem( new FormatAction(this, Translatrix.getTranslationString("FormatSmall"), HTML.Tag.SMALL))); JMenu jMenuFontSize = new JMenu(Translatrix.getTranslationString("FontSize")); jMenuFontSize.add(new JMenuItem( new StyledEditorKit.FontSizeAction(Translatrix.getTranslationString("FontSize1"), 8))); jMenuFontSize.add(new JMenuItem( new StyledEditorKit.FontSizeAction(Translatrix.getTranslationString("FontSize2"), 10))); jMenuFontSize.add(new JMenuItem( new StyledEditorKit.FontSizeAction(Translatrix.getTranslationString("FontSize3"), 12))); jMenuFontSize.add(new JMenuItem( new StyledEditorKit.FontSizeAction(Translatrix.getTranslationString("FontSize4"), 14))); jMenuFontSize.add(new JMenuItem( new StyledEditorKit.FontSizeAction(Translatrix.getTranslationString("FontSize5"), 18))); jMenuFontSize.add(new JMenuItem( new StyledEditorKit.FontSizeAction(Translatrix.getTranslationString("FontSize6"), 24))); jMenuFontSize.add(new JMenuItem( new StyledEditorKit.FontSizeAction(Translatrix.getTranslationString("FontSize7"), 32))); jMenuFont.add(jMenuFontSize); jMenuFont.addSeparator(); JMenu jMenuFontSub = new JMenu(Translatrix.getTranslationString("Font")); JMenuItem jmiSelectFont = new JMenuItem(actionSelectFont); jmiSelectFont.setText(Translatrix.getTranslationString("FontSelect") + menuDialog); if (showMenuIcons) { jmiSelectFont.setIcon(getEkitIcon("FontFaces")); } jMenuFontSub.add(jmiSelectFont); JMenuItem jmiSerif = new JMenuItem((Action) actions.get("font-family-Serif")); jmiSerif.setText(Translatrix.getTranslationString("FontSerif")); jMenuFontSub.add(jmiSerif); JMenuItem jmiSansSerif = new JMenuItem((Action) actions.get("font-family-SansSerif")); jmiSansSerif.setText(Translatrix.getTranslationString("FontSansserif")); jMenuFontSub.add(jmiSansSerif); JMenuItem jmiMonospaced = new JMenuItem((Action) actions.get("font-family-Monospaced")); jmiMonospaced.setText(Translatrix.getTranslationString("FontMonospaced")); jMenuFontSub.add(jmiMonospaced); jMenuFont.add(jMenuFontSub); jMenuFont.addSeparator(); JMenu jMenuFontColor = new JMenu(Translatrix.getTranslationString("Color")); Hashtable<String, String> customAttr = new Hashtable<String, String>(); customAttr.put("color", "black"); jMenuFontColor.add(new JMenuItem(new CustomAction(this, Translatrix.getTranslationString("CustomColor") + menuDialog, HTML.Tag.FONT, customAttr))); jMenuFontColor.add(new JMenuItem(new StyledEditorKit.ForegroundAction( Translatrix.getTranslationString("ColorAqua"), new Color(0, 255, 255)))); jMenuFontColor.add(new JMenuItem(new StyledEditorKit.ForegroundAction( Translatrix.getTranslationString("ColorBlack"), new Color(0, 0, 0)))); jMenuFontColor.add(new JMenuItem(new StyledEditorKit.ForegroundAction( Translatrix.getTranslationString("ColorBlue"), new Color(0, 0, 255)))); jMenuFontColor.add(new JMenuItem(new StyledEditorKit.ForegroundAction( Translatrix.getTranslationString("ColorFuschia"), new Color(255, 0, 255)))); jMenuFontColor.add(new JMenuItem(new StyledEditorKit.ForegroundAction( Translatrix.getTranslationString("ColorGray"), new Color(128, 128, 128)))); jMenuFontColor.add(new JMenuItem(new StyledEditorKit.ForegroundAction( Translatrix.getTranslationString("ColorGreen"), new Color(0, 128, 0)))); jMenuFontColor.add(new JMenuItem(new StyledEditorKit.ForegroundAction( Translatrix.getTranslationString("ColorLime"), new Color(0, 255, 0)))); jMenuFontColor.add(new JMenuItem(new StyledEditorKit.ForegroundAction( Translatrix.getTranslationString("ColorMaroon"), new Color(128, 0, 0)))); jMenuFontColor.add(new JMenuItem(new StyledEditorKit.ForegroundAction( Translatrix.getTranslationString("ColorNavy"), new Color(0, 0, 128)))); jMenuFontColor.add(new JMenuItem(new StyledEditorKit.ForegroundAction( Translatrix.getTranslationString("ColorOlive"), new Color(128, 128, 0)))); jMenuFontColor.add(new JMenuItem(new StyledEditorKit.ForegroundAction( Translatrix.getTranslationString("ColorPurple"), new Color(128, 0, 128)))); jMenuFontColor.add(new JMenuItem(new StyledEditorKit.ForegroundAction( Translatrix.getTranslationString("ColorRed"), new Color(255, 0, 0)))); jMenuFontColor.add(new JMenuItem(new StyledEditorKit.ForegroundAction( Translatrix.getTranslationString("ColorSilver"), new Color(192, 192, 192)))); jMenuFontColor.add(new JMenuItem(new StyledEditorKit.ForegroundAction( Translatrix.getTranslationString("ColorTeal"), new Color(0, 128, 128)))); jMenuFontColor.add(new JMenuItem(new StyledEditorKit.ForegroundAction( Translatrix.getTranslationString("ColorWhite"), new Color(255, 255, 255)))); jMenuFontColor.add(new JMenuItem(new StyledEditorKit.ForegroundAction( Translatrix.getTranslationString("ColorYellow"), new Color(255, 255, 0)))); jMenuFont.add(jMenuFontColor); /* FORMAT Menu */ jMenuFormat = new JMenu(Translatrix.getTranslationString("Format")); htMenus.put(KEY_MENU_FORMAT, jMenuFormat); JMenuItem jmiClearFormat = new JMenuItem(actionClearFormat); jMenuFormat.add(jmiClearFormat); jMenuFormat.addSeparator(); JMenu jMenuFormatAlign = new JMenu(Translatrix.getTranslationString("Align")); JMenuItem jmiAlignLeft = new JMenuItem(actionAlignLeft); if (showMenuIcons) { jmiAlignLeft.setIcon(getEkitIcon("AlignLeft")); } ; jMenuFormatAlign.add(jmiAlignLeft); JMenuItem jmiAlignCenter = new JMenuItem(actionAlignCenter); if (showMenuIcons) { jmiAlignCenter.setIcon(getEkitIcon("AlignCenter")); } ; jMenuFormatAlign.add(jmiAlignCenter); JMenuItem jmiAlignRight = new JMenuItem(actionAlignRight); if (showMenuIcons) { jmiAlignRight.setIcon(getEkitIcon("AlignRight")); } ; jMenuFormatAlign.add(jmiAlignRight); JMenuItem jmiAlignJustified = new JMenuItem(actionAlignJustified); if (showMenuIcons) { jmiAlignJustified.setIcon(getEkitIcon("AlignJustified")); } ; jMenuFormatAlign.add(jmiAlignJustified); jMenuFormat.add(jMenuFormatAlign); jMenuFormat.addSeparator(); JMenu jMenuFormatHeading = new JMenu(Translatrix.getTranslationString("Heading")); jMenuFormatHeading.add( new JMenuItem(new FormatAction(this, Translatrix.getTranslationString("Heading1"), HTML.Tag.H1))); jMenuFormatHeading.add( new JMenuItem(new FormatAction(this, Translatrix.getTranslationString("Heading2"), HTML.Tag.H2))); jMenuFormatHeading.add( new JMenuItem(new FormatAction(this, Translatrix.getTranslationString("Heading3"), HTML.Tag.H3))); jMenuFormatHeading.add( new JMenuItem(new FormatAction(this, Translatrix.getTranslationString("Heading4"), HTML.Tag.H4))); jMenuFormatHeading.add( new JMenuItem(new FormatAction(this, Translatrix.getTranslationString("Heading5"), HTML.Tag.H5))); jMenuFormatHeading.add( new JMenuItem(new FormatAction(this, Translatrix.getTranslationString("Heading6"), HTML.Tag.H6))); jMenuFormat.add(jMenuFormatHeading); jMenuFormat.addSeparator(); JMenuItem jmiUList = new JMenuItem(actionListUnordered); if (showMenuIcons) { jmiUList.setIcon(getEkitIcon("UList")); } jMenuFormat.add(jmiUList); JMenuItem jmiOList = new JMenuItem(actionListOrdered); if (showMenuIcons) { jmiOList.setIcon(getEkitIcon("OList")); } jMenuFormat.add(jmiOList); jMenuFormat.add( new JMenuItem(new FormatAction(this, Translatrix.getTranslationString("ListItem"), HTML.Tag.LI))); jMenuFormat.addSeparator(); jMenuFormat.add(new JMenuItem( new FormatAction(this, Translatrix.getTranslationString("FormatBlockquote"), HTML.Tag.BLOCKQUOTE))); jMenuFormat.add( new JMenuItem(new FormatAction(this, Translatrix.getTranslationString("FormatPre"), HTML.Tag.PRE))); jMenuFormat.add(new JMenuItem( new FormatAction(this, Translatrix.getTranslationString("FormatStrong"), HTML.Tag.STRONG))); jMenuFormat.add(new JMenuItem( new FormatAction(this, Translatrix.getTranslationString("FormatEmphasis"), HTML.Tag.EM))); jMenuFormat.add( new JMenuItem(new FormatAction(this, Translatrix.getTranslationString("FormatTT"), HTML.Tag.TT))); jMenuFormat.add(new JMenuItem( new FormatAction(this, Translatrix.getTranslationString("FormatSpan"), HTML.Tag.SPAN))); /* INSERT Menu */ jMenuInsert = new JMenu(Translatrix.getTranslationString("Insert")); htMenus.put(KEY_MENU_INSERT, jMenuInsert); JMenuItem jmiInsertAnchor = new JMenuItem(actionInsertAnchor); if (showMenuIcons) { jmiInsertAnchor.setIcon(getEkitIcon("Anchor")); } ; jMenuInsert.add(jmiInsertAnchor); JMenuItem jmiBreak = new JMenuItem(Translatrix.getTranslationString("InsertBreak")); jmiBreak.setActionCommand(CMD_INSERT_BREAK); jmiBreak.addActionListener(this); jmiBreak.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, KeyEvent.SHIFT_MASK, false)); jMenuInsert.add(jmiBreak); JMenuItem jmiNBSP = new JMenuItem(Translatrix.getTranslationString("InsertNBSP")); jmiNBSP.setActionCommand(CMD_INSERT_NBSP); jmiNBSP.addActionListener(this); jmiNBSP.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_SPACE, KeyEvent.SHIFT_MASK, false)); jMenuInsert.add(jmiNBSP); JMenu jMenuUnicode = new JMenu(Translatrix.getTranslationString("InsertUnicodeCharacter")); if (showMenuIcons) { jMenuUnicode.setIcon(getEkitIcon("Unicode")); } ; JMenuItem jmiUnicodeAll = new JMenuItem( Translatrix.getTranslationString("InsertUnicodeCharacterAll") + menuDialog); if (showMenuIcons) { jmiUnicodeAll.setIcon(getEkitIcon("Unicode")); } ; jmiUnicodeAll.setActionCommand(CMD_INSERT_UNICODE_CHAR); jmiUnicodeAll.addActionListener(this); jMenuUnicode.add(jmiUnicodeAll); JMenuItem jmiUnicodeMath = new JMenuItem( Translatrix.getTranslationString("InsertUnicodeCharacterMath") + menuDialog); if (showMenuIcons) { jmiUnicodeMath.setIcon(getEkitIcon("Math")); } ; jmiUnicodeMath.setActionCommand(CMD_INSERT_UNICODE_MATH); jmiUnicodeMath.addActionListener(this); jMenuUnicode.add(jmiUnicodeMath); JMenuItem jmiUnicodeDraw = new JMenuItem( Translatrix.getTranslationString("InsertUnicodeCharacterDraw") + menuDialog); if (showMenuIcons) { jmiUnicodeDraw.setIcon(getEkitIcon("Draw")); } ; jmiUnicodeDraw.setActionCommand(CMD_INSERT_UNICODE_DRAW); jmiUnicodeDraw.addActionListener(this); jMenuUnicode.add(jmiUnicodeDraw); JMenuItem jmiUnicodeDing = new JMenuItem( Translatrix.getTranslationString("InsertUnicodeCharacterDing") + menuDialog); jmiUnicodeDing.setActionCommand(CMD_INSERT_UNICODE_DING); jmiUnicodeDing.addActionListener(this); jMenuUnicode.add(jmiUnicodeDing); JMenuItem jmiUnicodeSigs = new JMenuItem( Translatrix.getTranslationString("InsertUnicodeCharacterSigs") + menuDialog); jmiUnicodeSigs.setActionCommand(CMD_INSERT_UNICODE_SIGS); jmiUnicodeSigs.addActionListener(this); jMenuUnicode.add(jmiUnicodeSigs); JMenuItem jmiUnicodeSpec = new JMenuItem( Translatrix.getTranslationString("InsertUnicodeCharacterSpec") + menuDialog); jmiUnicodeSpec.setActionCommand(CMD_INSERT_UNICODE_SPEC); jmiUnicodeSpec.addActionListener(this); jMenuUnicode.add(jmiUnicodeSpec); jMenuInsert.add(jMenuUnicode); JMenuItem jmiHRule = new JMenuItem(Translatrix.getTranslationString("InsertHorizontalRule")); jmiHRule.setActionCommand(CMD_INSERT_HR); jmiHRule.addActionListener(this); jMenuInsert.add(jmiHRule); jMenuInsert.addSeparator(); if (!isParentApplet) { JMenuItem jmiImageLocal = new JMenuItem( Translatrix.getTranslationString("InsertLocalImage") + menuDialog); jmiImageLocal.setActionCommand(CMD_INSERT_IMAGE_LOCAL); jmiImageLocal.addActionListener(this); jMenuInsert.add(jmiImageLocal); } JMenuItem jmiImageURL = new JMenuItem(Translatrix.getTranslationString("InsertURLImage") + menuDialog); jmiImageURL.setActionCommand(CMD_INSERT_IMAGE_URL); jmiImageURL.addActionListener(this); jMenuInsert.add(jmiImageURL); /* TABLE Menu */ jMenuTable = new JMenu(Translatrix.getTranslationString("Table")); htMenus.put(KEY_MENU_TABLE, jMenuTable); JMenuItem jmiTable = new JMenuItem(actionTableInsert); if (!showMenuIcons) { jmiTable.setIcon(null); } jMenuTable.add(jmiTable); jMenuTable.addSeparator(); Action actionTableEdit = new CommandAction(Translatrix.getTranslationString("TableEdit") + menuDialog, getEkitIcon("TableEdit"), CMD_TABLE_EDIT, this); JMenuItem jmiEditTable = new JMenuItem(actionTableEdit); if (!showMenuIcons) { jmiEditTable.setIcon(null); } jMenuTable.add(jmiEditTable); Action actionCellEdit = new CommandAction(Translatrix.getTranslationString("TableCellEdit") + menuDialog, getEkitIcon("CellEdit"), CMD_TABLE_CELL_EDIT, this); JMenuItem jmiEditCell = new JMenuItem(actionCellEdit); if (!showMenuIcons) { jmiEditCell.setIcon(null); } jmiEditCell.setActionCommand(CMD_TABLE_CELL_EDIT); jmiEditCell.addActionListener(this); jMenuTable.add(jmiEditCell); jMenuTable.addSeparator(); JMenuItem jmiTableRow = new JMenuItem(actionTableRow); if (!showMenuIcons) { jmiTableRow.setIcon(null); } jMenuTable.add(jmiTableRow); JMenuItem jmiTableCol = new JMenuItem(actionTableCol); if (!showMenuIcons) { jmiTableCol.setIcon(null); } jMenuTable.add(jmiTableCol); jMenuTable.addSeparator(); JMenuItem jmiTableRowDel = new JMenuItem(actionTableRowDel); if (!showMenuIcons) { jmiTableRowDel.setIcon(null); } jMenuTable.add(jmiTableRowDel); JMenuItem jmiTableColDel = new JMenuItem(actionTableColDel); if (!showMenuIcons) { jmiTableColDel.setIcon(null); } jMenuTable.add(jmiTableColDel); /* FORMS Menu */ jMenuForms = new JMenu(Translatrix.getTranslationString("Forms")); htMenus.put(KEY_MENU_FORMS, jMenuForms); JMenuItem jmiFormInsertForm = new JMenuItem(Translatrix.getTranslationString("FormInsertForm")); jmiFormInsertForm.setActionCommand(CMD_FORM_INSERT); jmiFormInsertForm.addActionListener(this); jMenuForms.add(jmiFormInsertForm); jMenuForms.addSeparator(); JMenuItem jmiFormTextfield = new JMenuItem(Translatrix.getTranslationString("FormTextfield")); jmiFormTextfield.setActionCommand(CMD_FORM_TEXTFIELD); jmiFormTextfield.addActionListener(this); jMenuForms.add(jmiFormTextfield); JMenuItem jmiFormTextarea = new JMenuItem(Translatrix.getTranslationString("FormTextarea")); jmiFormTextarea.setActionCommand(CMD_FORM_TEXTAREA); jmiFormTextarea.addActionListener(this); jMenuForms.add(jmiFormTextarea); JMenuItem jmiFormCheckbox = new JMenuItem(Translatrix.getTranslationString("FormCheckbox")); jmiFormCheckbox.setActionCommand(CMD_FORM_CHECKBOX); jmiFormCheckbox.addActionListener(this); jMenuForms.add(jmiFormCheckbox); JMenuItem jmiFormRadio = new JMenuItem(Translatrix.getTranslationString("FormRadio")); jmiFormRadio.setActionCommand(CMD_FORM_RADIO); jmiFormRadio.addActionListener(this); jMenuForms.add(jmiFormRadio); JMenuItem jmiFormPassword = new JMenuItem(Translatrix.getTranslationString("FormPassword")); jmiFormPassword.setActionCommand(CMD_FORM_PASSWORD); jmiFormPassword.addActionListener(this); jMenuForms.add(jmiFormPassword); jMenuForms.addSeparator(); JMenuItem jmiFormButton = new JMenuItem(Translatrix.getTranslationString("FormButton")); jmiFormButton.setActionCommand(CMD_FORM_BUTTON); jmiFormButton.addActionListener(this); jMenuForms.add(jmiFormButton); JMenuItem jmiFormButtonSubmit = new JMenuItem(Translatrix.getTranslationString("FormButtonSubmit")); jmiFormButtonSubmit.setActionCommand(CMD_FORM_SUBMIT); jmiFormButtonSubmit.addActionListener(this); jMenuForms.add(jmiFormButtonSubmit); JMenuItem jmiFormButtonReset = new JMenuItem(Translatrix.getTranslationString("FormButtonReset")); jmiFormButtonReset.setActionCommand(CMD_FORM_RESET); jmiFormButtonReset.addActionListener(this); jMenuForms.add(jmiFormButtonReset); /* TOOLS Menu */ if (hasSpellChecker) { jMenuTools = new JMenu(Translatrix.getTranslationString("Tools")); htMenus.put(KEY_MENU_TOOLS, jMenuTools); JMenuItem jmiSpellcheck = new JMenuItem(Translatrix.getTranslationString("ToolSpellcheck")); jmiSpellcheck.setActionCommand(CMD_SPELLCHECK); jmiSpellcheck.addActionListener(this); jMenuTools.add(jmiSpellcheck); } /* SEARCH Menu */ jMenuSearch = new JMenu(Translatrix.getTranslationString("Search")); htMenus.put(KEY_MENU_SEARCH, jMenuSearch); JMenuItem jmiFind = new JMenuItem(Translatrix.getTranslationString("SearchFind")); if (showMenuIcons) { jmiFind.setIcon(getEkitIcon("Find")); } ; jmiFind.setActionCommand(CMD_SEARCH_FIND); jmiFind.addActionListener(this); jmiFind.setAccelerator(KeyStroke.getKeyStroke('F', CTRLKEY, false)); jMenuSearch.add(jmiFind); JMenuItem jmiFindAgain = new JMenuItem(Translatrix.getTranslationString("SearchFindAgain")); if (showMenuIcons) { jmiFindAgain.setIcon(getEkitIcon("FindAgain")); } ; jmiFindAgain.setActionCommand(CMD_SEARCH_FIND_AGAIN); jmiFindAgain.addActionListener(this); jmiFindAgain.setAccelerator(KeyStroke.getKeyStroke('G', CTRLKEY, false)); jMenuSearch.add(jmiFindAgain); JMenuItem jmiReplace = new JMenuItem(Translatrix.getTranslationString("SearchReplace")); if (showMenuIcons) { jmiReplace.setIcon(getEkitIcon("Replace")); } ; jmiReplace.setActionCommand(CMD_SEARCH_REPLACE); jmiReplace.addActionListener(this); jmiReplace.setAccelerator(KeyStroke.getKeyStroke('R', CTRLKEY, false)); jMenuSearch.add(jmiReplace); /* HELP Menu */ jMenuHelp = new JMenu(Translatrix.getTranslationString("Help")); htMenus.put(KEY_MENU_HELP, jMenuHelp); JMenuItem jmiAbout = new JMenuItem(Translatrix.getTranslationString("About")); jmiAbout.setActionCommand(CMD_HELP_ABOUT); jmiAbout.addActionListener(this); jMenuHelp.add(jmiAbout); /* DEBUG Menu */ jMenuDebug = new JMenu(Translatrix.getTranslationString("Debug")); htMenus.put(KEY_MENU_DEBUG, jMenuDebug); JMenuItem jmiDesc = new JMenuItem(Translatrix.getTranslationString("DescribeDoc")); jmiDesc.setActionCommand(CMD_DEBUG_DESCRIBE_DOC); jmiDesc.addActionListener(this); jMenuDebug.add(jmiDesc); JMenuItem jmiDescCSS = new JMenuItem(Translatrix.getTranslationString("DescribeCSS")); jmiDescCSS.setActionCommand(CMD_DEBUG_DESCRIBE_CSS); jmiDescCSS.addActionListener(this); jMenuDebug.add(jmiDescCSS); JMenuItem jmiTag = new JMenuItem(Translatrix.getTranslationString("WhatTags")); jmiTag.setActionCommand(CMD_DEBUG_CURRENT_TAGS); jmiTag.addActionListener(this); jMenuDebug.add(jmiTag); /* Create menubar and add menus */ jMenuBar = new JMenuBar(); jMenuBar.add(jMenuFile); jMenuBar.add(jMenuEdit); jMenuBar.add(jMenuView); jMenuBar.add(jMenuFont); jMenuBar.add(jMenuFormat); jMenuBar.add(jMenuSearch); jMenuBar.add(jMenuInsert); jMenuBar.add(jMenuTable); jMenuBar.add(jMenuForms); if (jMenuTools != null) { jMenuBar.add(jMenuTools); } jMenuBar.add(jMenuHelp); if (debugMode) { jMenuBar.add(jMenuDebug); } /* Create toolbar tool objects */ jbtnNewHTML = new JButtonNoFocus(getEkitIcon("New")); jbtnNewHTML.setToolTipText(Translatrix.getTranslationString("NewDocument")); jbtnNewHTML.setActionCommand(CMD_DOC_NEW); jbtnNewHTML.addActionListener(this); htTools.put(KEY_TOOL_NEW, jbtnNewHTML); jbtnNewStyledHTML = new JButtonNoFocus(getEkitIcon("NewStyled")); jbtnNewStyledHTML.setToolTipText(Translatrix.getTranslationString("NewStyledDocument")); jbtnNewStyledHTML.setActionCommand(CMD_DOC_NEW_STYLED); jbtnNewStyledHTML.addActionListener(this); htTools.put(KEY_TOOL_NEWSTYLED, jbtnNewStyledHTML); jbtnOpenHTML = new JButtonNoFocus(getEkitIcon("Open")); jbtnOpenHTML.setToolTipText(Translatrix.getTranslationString("OpenDocument")); jbtnOpenHTML.setActionCommand(CMD_DOC_OPEN_HTML); jbtnOpenHTML.addActionListener(this); htTools.put(KEY_TOOL_OPEN, jbtnOpenHTML); jbtnSaveHTML = new JButtonNoFocus(getEkitIcon("Save")); jbtnSaveHTML.setToolTipText(Translatrix.getTranslationString("SaveDocument")); jbtnSaveHTML.setActionCommand(CMD_DOC_SAVE_AS); jbtnSaveHTML.addActionListener(this); htTools.put(KEY_TOOL_SAVE, jbtnSaveHTML); jbtnPrint = new JButtonNoFocus(getEkitIcon("Print")); jbtnPrint.setToolTipText(Translatrix.getTranslationString("PrintDocument")); jbtnPrint.setActionCommand(CMD_DOC_PRINT); jbtnPrint.addActionListener(this); htTools.put(KEY_TOOL_PRINT, jbtnPrint); // jbtnCut = new JButtonNoFocus(new DefaultEditorKit.CutAction()); jbtnCut = new JButtonNoFocus(); jbtnCut.setActionCommand(CMD_CLIP_CUT); jbtnCut.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { EkitCore.this.actionPerformed(evt); } }); jbtnCut.setIcon(getEkitIcon("Cut")); jbtnCut.setText(null); jbtnCut.setToolTipText(Translatrix.getTranslationString("Cut")); htTools.put(KEY_TOOL_CUT, jbtnCut); // jbtnCopy = new JButtonNoFocus(new DefaultEditorKit.CopyAction()); jbtnCopy = new JButtonNoFocus(); jbtnCopy.setActionCommand(CMD_CLIP_COPY); jbtnCopy.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { EkitCore.this.actionPerformed(evt); } }); jbtnCopy.setIcon(getEkitIcon("Copy")); jbtnCopy.setText(null); jbtnCopy.setToolTipText(Translatrix.getTranslationString("Copy")); htTools.put(KEY_TOOL_COPY, jbtnCopy); // jbtnPaste = new JButtonNoFocus(new DefaultEditorKit.PasteAction()); jbtnPaste = new JButtonNoFocus(); jbtnPaste.setActionCommand(CMD_CLIP_PASTE); jbtnPaste.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { EkitCore.this.actionPerformed(evt); } }); jbtnPaste.setIcon(getEkitIcon("Paste")); jbtnPaste.setText(null); jbtnPaste.setToolTipText(Translatrix.getTranslationString("Paste")); htTools.put(KEY_TOOL_PASTE, jbtnPaste); jbtnPasteX = new JButtonNoFocus(); jbtnPasteX.setActionCommand(CMD_CLIP_PASTE_PLAIN); jbtnPasteX.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { EkitCore.this.actionPerformed(evt); } }); jbtnPasteX.setIcon(getEkitIcon("PasteUnformatted")); jbtnPasteX.setText(null); jbtnPasteX.setToolTipText(Translatrix.getTranslationString("PasteUnformatted")); htTools.put(KEY_TOOL_PASTEX, jbtnPasteX); jbtnUndo = new JButtonNoFocus(undoAction); jbtnUndo.setIcon(getEkitIcon("Undo")); jbtnUndo.setText(null); jbtnUndo.setToolTipText(Translatrix.getTranslationString("Undo")); htTools.put(KEY_TOOL_UNDO, jbtnUndo); jbtnRedo = new JButtonNoFocus(redoAction); jbtnRedo.setIcon(getEkitIcon("Redo")); jbtnRedo.setText(null); jbtnRedo.setToolTipText(Translatrix.getTranslationString("Redo")); htTools.put(KEY_TOOL_REDO, jbtnRedo); jbtnBold = new JButtonNoFocus(actionFontBold); jbtnBold.setIcon(getEkitIcon("Bold")); jbtnBold.setText(null); jbtnBold.setToolTipText(Translatrix.getTranslationString("FontBold")); htTools.put(KEY_TOOL_BOLD, jbtnBold); jbtnItalic = new JButtonNoFocus(actionFontItalic); jbtnItalic.setIcon(getEkitIcon("Italic")); jbtnItalic.setText(null); jbtnItalic.setToolTipText(Translatrix.getTranslationString("FontItalic")); htTools.put(KEY_TOOL_ITALIC, jbtnItalic); jbtnUnderline = new JButtonNoFocus(actionFontUnderline); jbtnUnderline.setIcon(getEkitIcon("Underline")); jbtnUnderline.setText(null); jbtnUnderline.setToolTipText(Translatrix.getTranslationString("FontUnderline")); htTools.put(KEY_TOOL_UNDERLINE, jbtnUnderline); jbtnStrike = new JButtonNoFocus(actionFontStrike); jbtnStrike.setIcon(getEkitIcon("Strike")); jbtnStrike.setText(null); jbtnStrike.setToolTipText(Translatrix.getTranslationString("FontStrike")); htTools.put(KEY_TOOL_STRIKE, jbtnStrike); jbtnSuperscript = new JButtonNoFocus(actionFontSuperscript); jbtnSuperscript.setIcon(getEkitIcon("Super")); jbtnSuperscript.setText(null); jbtnSuperscript.setToolTipText(Translatrix.getTranslationString("FontSuperscript")); htTools.put(KEY_TOOL_SUPER, jbtnSuperscript); jbtnSubscript = new JButtonNoFocus(actionFontSubscript); jbtnSubscript.setIcon(getEkitIcon("Sub")); jbtnSubscript.setText(null); jbtnSubscript.setToolTipText(Translatrix.getTranslationString("FontSubscript")); htTools.put(KEY_TOOL_SUB, jbtnSubscript); jbtnUList = new JButtonNoFocus(actionListUnordered); jbtnUList.setIcon(getEkitIcon("UList")); jbtnUList.setText(null); jbtnUList.setToolTipText(Translatrix.getTranslationString("ListUnordered")); htTools.put(KEY_TOOL_ULIST, jbtnUList); jbtnOList = new JButtonNoFocus(actionListOrdered); jbtnOList.setIcon(getEkitIcon("OList")); jbtnOList.setText(null); jbtnOList.setToolTipText(Translatrix.getTranslationString("ListOrdered")); htTools.put(KEY_TOOL_OLIST, jbtnOList); jbtnAlignLeft = new JButtonNoFocus(actionAlignLeft); jbtnAlignLeft.setIcon(getEkitIcon("AlignLeft")); jbtnAlignLeft.setText(null); jbtnAlignLeft.setToolTipText(Translatrix.getTranslationString("AlignLeft")); htTools.put(KEY_TOOL_ALIGNL, jbtnAlignLeft); jbtnAlignCenter = new JButtonNoFocus(actionAlignCenter); jbtnAlignCenter.setIcon(getEkitIcon("AlignCenter")); jbtnAlignCenter.setText(null); jbtnAlignCenter.setToolTipText(Translatrix.getTranslationString("AlignCenter")); htTools.put(KEY_TOOL_ALIGNC, jbtnAlignCenter); jbtnAlignRight = new JButtonNoFocus(actionAlignRight); jbtnAlignRight.setIcon(getEkitIcon("AlignRight")); jbtnAlignRight.setText(null); jbtnAlignRight.setToolTipText(Translatrix.getTranslationString("AlignRight")); htTools.put(KEY_TOOL_ALIGNR, jbtnAlignRight); jbtnAlignJustified = new JButtonNoFocus(actionAlignJustified); jbtnAlignJustified.setIcon(getEkitIcon("AlignJustified")); jbtnAlignJustified.setText(null); jbtnAlignJustified.setToolTipText(Translatrix.getTranslationString("AlignJustified")); htTools.put(KEY_TOOL_ALIGNJ, jbtnAlignJustified); jbtnUnicode = new JButtonNoFocus(); jbtnUnicode.setActionCommand(CMD_INSERT_UNICODE_CHAR); jbtnUnicode.addActionListener(this); jbtnUnicode.setIcon(getEkitIcon("Unicode")); jbtnUnicode.setText(null); jbtnUnicode.setToolTipText(Translatrix.getTranslationString("ToolUnicode")); htTools.put(KEY_TOOL_UNICODE, jbtnUnicode); jbtnUnicodeMath = new JButtonNoFocus(); jbtnUnicodeMath.setActionCommand(CMD_INSERT_UNICODE_MATH); jbtnUnicodeMath.addActionListener(this); jbtnUnicodeMath.setIcon(getEkitIcon("Math")); jbtnUnicodeMath.setText(null); jbtnUnicodeMath.setToolTipText(Translatrix.getTranslationString("ToolUnicodeMath")); htTools.put(KEY_TOOL_UNIMATH, jbtnUnicodeMath); jbtnFind = new JButtonNoFocus(); jbtnFind.setActionCommand(CMD_SEARCH_FIND); jbtnFind.addActionListener(this); jbtnFind.setIcon(getEkitIcon("Find")); jbtnFind.setText(null); jbtnFind.setToolTipText(Translatrix.getTranslationString("SearchFind")); htTools.put(KEY_TOOL_FIND, jbtnFind); jbtnAnchor = new JButtonNoFocus(actionInsertAnchor); jbtnAnchor.setIcon(getEkitIcon("Anchor")); jbtnAnchor.setText(null); jbtnAnchor.setToolTipText(Translatrix.getTranslationString("ToolAnchor")); htTools.put(KEY_TOOL_ANCHOR, jbtnAnchor); jtbtnViewSource = new JToggleButtonNoFocus(getEkitIcon("Source")); jtbtnViewSource.setText(null); jtbtnViewSource.setToolTipText(Translatrix.getTranslationString("ViewSource")); jtbtnViewSource.setActionCommand(CMD_TOGGLE_SOURCE_VIEW); jtbtnViewSource.addActionListener(this); jtbtnViewSource.setPreferredSize(jbtnAnchor.getPreferredSize()); jtbtnViewSource.setMinimumSize(jbtnAnchor.getMinimumSize()); jtbtnViewSource.setMaximumSize(jbtnAnchor.getMaximumSize()); htTools.put(KEY_TOOL_SOURCE, jtbtnViewSource); jcmbStyleSelector = new JComboBoxNoFocus(); jcmbStyleSelector.setToolTipText(Translatrix.getTranslationString("PickCSSStyle")); jcmbStyleSelector.setAction(new StylesAction(jcmbStyleSelector)); htTools.put(KEY_TOOL_STYLES, jcmbStyleSelector); String[] fonts = java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames(); Vector<String> vcFontnames = new Vector<String>(fonts.length + 1); vcFontnames.add(Translatrix.getTranslationString("SelectorToolFontsDefaultFont")); for (String fontname : fonts) { vcFontnames.add(fontname); } Collections.sort(vcFontnames); jcmbFontSelector = new JComboBoxNoFocus(vcFontnames); jcmbFontSelector.setAction(new SetFontFamilyAction(this, "[EKITFONTSELECTOR]")); htTools.put(KEY_TOOL_FONTS, jcmbFontSelector); jbtnInsertTable = new JButtonNoFocus(); jbtnInsertTable.setActionCommand(CMD_TABLE_INSERT); jbtnInsertTable.addActionListener(this); jbtnInsertTable.setIcon(getEkitIcon("TableCreate")); jbtnInsertTable.setText(null); jbtnInsertTable.setToolTipText(Translatrix.getTranslationString("InsertTable")); htTools.put(KEY_TOOL_INSTABLE, jbtnInsertTable); jbtnEditTable = new JButtonNoFocus(); jbtnEditTable.setActionCommand(CMD_TABLE_EDIT); jbtnEditTable.addActionListener(this); jbtnEditTable.setIcon(getEkitIcon("TableEdit")); jbtnEditTable.setText(null); jbtnEditTable.setToolTipText(Translatrix.getTranslationString("TableEdit")); htTools.put(KEY_TOOL_EDITTABLE, jbtnEditTable); jbtnEditCell = new JButtonNoFocus(); jbtnEditCell.setActionCommand(CMD_TABLE_CELL_EDIT); jbtnEditCell.addActionListener(this); jbtnEditCell.setIcon(getEkitIcon("CellEdit")); jbtnEditCell.setText(null); jbtnEditCell.setToolTipText(Translatrix.getTranslationString("TableCellEdit")); htTools.put(KEY_TOOL_EDITCELL, jbtnEditCell); jbtnInsertRow = new JButtonNoFocus(); jbtnInsertRow.setActionCommand(CMD_TABLE_ROW_INSERT); jbtnInsertRow.addActionListener(this); jbtnInsertRow.setIcon(getEkitIcon("InsertRow")); jbtnInsertRow.setText(null); jbtnInsertRow.setToolTipText(Translatrix.getTranslationString("InsertTableRow")); htTools.put(KEY_TOOL_INSERTROW, jbtnInsertRow); jbtnInsertColumn = new JButtonNoFocus(); jbtnInsertColumn.setActionCommand(CMD_TABLE_COLUMN_INSERT); jbtnInsertColumn.addActionListener(this); jbtnInsertColumn.setIcon(getEkitIcon("InsertColumn")); jbtnInsertColumn.setText(null); jbtnInsertColumn.setToolTipText(Translatrix.getTranslationString("InsertTableColumn")); htTools.put(KEY_TOOL_INSERTCOL, jbtnInsertColumn); jbtnDeleteRow = new JButtonNoFocus(); jbtnDeleteRow.setActionCommand(CMD_TABLE_ROW_DELETE); jbtnDeleteRow.addActionListener(this); jbtnDeleteRow.setIcon(getEkitIcon("DeleteRow")); jbtnDeleteRow.setText(null); jbtnDeleteRow.setToolTipText(Translatrix.getTranslationString("DeleteTableRow")); htTools.put(KEY_TOOL_DELETEROW, jbtnDeleteRow); jbtnDeleteColumn = new JButtonNoFocus(); jbtnDeleteColumn.setActionCommand(CMD_TABLE_COLUMN_DELETE); jbtnDeleteColumn.addActionListener(this); jbtnDeleteColumn.setIcon(getEkitIcon("DeleteColumn")); jbtnDeleteColumn.setText(null); jbtnDeleteColumn.setToolTipText(Translatrix.getTranslationString("DeleteTableColumn")); htTools.put(KEY_TOOL_DELETECOL, jbtnDeleteColumn); jbtnMaximize = new JButtonNoFocus(); jbtnMaximize.setActionCommand(CMD_MAXIMIZE); jbtnMaximize.addActionListener(this); jbtnMaximize.setIcon(getEkitIcon("Maximize")); jbtnMaximize.setText(null); jbtnMaximize.setToolTipText(Translatrix.getTranslationString("Maximize")); htTools.put(KEY_TOOL_MAXIMIZE, jbtnMaximize); jbtnClearFormat = new JButtonNoFocus(actionClearFormat); jbtnClearFormat.setIcon(getEkitIcon("ClearFormat")); jbtnClearFormat.setText(null); jbtnClearFormat.setToolTipText(Translatrix.getTranslationString("ClearFormat")); htTools.put(KEY_TOOL_CLEAR_FORMAT, jbtnClearFormat); jbtnSpecialChar = new JButtonNoFocus(actionSpecialChar); jbtnSpecialChar.setIcon(getEkitIcon("SpecialChar")); jbtnSpecialChar.setText(null); jbtnSpecialChar.setToolTipText(Translatrix.getTranslationString("SpecialChar")); htTools.put(KEY_TOOL_SPECIAL_CHAR, jbtnSpecialChar); jbtnTableButtonMenu = new JButtonNoFocus(actionTableButtonMenu); jbtnTableButtonMenu.setText(null); htTools.put(KEY_TOOL_TABLE_MENU, jbtnTableButtonMenu); /* Create the toolbar */ if (multiBar) { jToolBarMain = new JToolBar(JToolBar.HORIZONTAL); jToolBarMain.setFloatable(false); jToolBarFormat = new JToolBar(JToolBar.HORIZONTAL); jToolBarFormat.setFloatable(false); jToolBarStyles = new JToolBar(JToolBar.HORIZONTAL); jToolBarStyles.setFloatable(false); initializeMultiToolbars(toolbarSeq); // fix the weird size preference of toggle buttons jtbtnViewSource.setPreferredSize(jbtnAnchor.getPreferredSize()); jtbtnViewSource.setMinimumSize(jbtnAnchor.getMinimumSize()); jtbtnViewSource.setMaximumSize(jbtnAnchor.getMaximumSize()); } else if (includeToolBar) { jToolBar = new JToolBar(JToolBar.HORIZONTAL); jToolBar.setFloatable(false); initializeSingleToolbar(toolbarSeq); // fix the weird size preference of toggle buttons jtbtnViewSource.setPreferredSize(jbtnAnchor.getPreferredSize()); jtbtnViewSource.setMinimumSize(jbtnAnchor.getMinimumSize()); jtbtnViewSource.setMaximumSize(jbtnAnchor.getMaximumSize()); } /* Create the scroll area for the text pane */ jspViewport = new JScrollPane(jtpMain); jspViewport.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); jspViewport.setPreferredSize(new Dimension(400, 400)); jspViewport.setMinimumSize(new Dimension(32, 32)); /* Create the scroll area for the source viewer */ jspSource = new JScrollPane(jtpSource); jspSource.setPreferredSize(new Dimension(400, 100)); jspSource.setMinimumSize(new Dimension(32, 32)); displayPanel = new JPanel(); displayPanel.setLayout(new CardLayout()); displayPanel.add(jspViewport, PANEL_NAME_MAIN); displayPanel.add(jspSource, PANEL_NAME_SOURCE); if (showViewSource) { toggleSourceWindow(); } registerDocumentStyles(); tableCtl = new TableController(this); htmlDoc.setInlineEdit(inlineEdit); htmlDoc.addFilter(new HTMLTableDocumentFilter()); // Inicializa documento pelos behaviors for (HTMLDocumentBehavior b : this.behaviors) { b.initializeDocument(jtpMain); } htmlDoc.getBehaviors().addAll(this.behaviors); /* Add the components to the app */ this.setLayout(new BorderLayout()); this.add(displayPanel, BorderLayout.CENTER); }
From source file:com.maxl.java.amikodesk.AMiKoDesk.java
private static void createAndShowFullGUI() { // Create and setup window final JFrame jframe = new JFrame(Constants.APP_NAME); jframe.setName(Constants.APP_NAME + ".main"); int min_width = CML_OPT_WIDTH; int min_height = CML_OPT_HEIGHT; jframe.setPreferredSize(new Dimension(min_width, min_height)); jframe.setMinimumSize(new Dimension(min_width, min_height)); Dimension screen = Toolkit.getDefaultToolkit().getScreenSize(); int x = (screen.width - min_width) / 2; int y = (screen.height - min_height) / 2; jframe.setBounds(x, y, min_width, min_height); // Set application icon if (Utilities.appCustomization().equals("ywesee")) { ImageIcon img = new ImageIcon(Constants.AMIKO_ICON); jframe.setIconImage(img.getImage()); } else if (Utilities.appCustomization().equals("desitin")) { ImageIcon img = new ImageIcon(Constants.DESITIN_ICON); jframe.setIconImage(img.getImage()); } else if (Utilities.appCustomization().equals("meddrugs")) { ImageIcon img = new ImageIcon(Constants.MEDDRUGS_ICON); jframe.setIconImage(img.getImage()); } else if (Utilities.appCustomization().equals("zurrose")) { ImageIcon img = new ImageIcon(Constants.AMIKO_ICON); jframe.setIconImage(img.getImage()); }//from w ww.j a v a 2 s. com // ------ Setup menubar ------ JMenuBar menu_bar = new JMenuBar(); // menu_bar.add(Box.createHorizontalGlue()); // --> aligns menu items to the right! // -- Menu "Datei" -- JMenu datei_menu = new JMenu("Datei"); if (Utilities.appLanguage().equals("fr")) datei_menu.setText("Fichier"); menu_bar.add(datei_menu); JMenuItem print_item = new JMenuItem("Drucken..."); JMenuItem settings_item = new JMenuItem(m_rb.getString("settings") + "..."); JMenuItem quit_item = new JMenuItem("Beenden"); if (Utilities.appLanguage().equals("fr")) { print_item.setText("Imprimer"); quit_item.setText("Terminer"); } datei_menu.add(print_item); datei_menu.addSeparator(); datei_menu.add(settings_item); datei_menu.addSeparator(); datei_menu.add(quit_item); // -- Menu "Aktualisieren" -- JMenu update_menu = new JMenu("Aktualisieren"); if (Utilities.appLanguage().equals("fr")) update_menu.setText("Mise jour"); menu_bar.add(update_menu); final JMenuItem updatedb_item = new JMenuItem("Aktualisieren via Internet..."); updatedb_item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A, ActionEvent.CTRL_MASK)); JMenuItem choosedb_item = new JMenuItem("Aktualisieren via Datei..."); update_menu.add(updatedb_item); update_menu.add(choosedb_item); if (Utilities.appLanguage().equals("fr")) { updatedb_item.setText("Tlcharger la banque de donnes..."); updatedb_item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_T, ActionEvent.CTRL_MASK)); choosedb_item.setText("Ajourner la banque de donnes..."); } // -- Menu "Hilfe" -- JMenu hilfe_menu = new JMenu("Hilfe"); if (Utilities.appLanguage().equals("fr")) hilfe_menu.setText("Aide"); menu_bar.add(hilfe_menu); JMenuItem about_item = new JMenuItem("ber " + Constants.APP_NAME + "..."); JMenuItem ywesee_item = new JMenuItem(Constants.APP_NAME + " im Internet"); if (Utilities.appCustomization().equals("meddrugs")) ywesee_item.setText("med-drugs im Internet"); JMenuItem report_item = new JMenuItem("Error Report..."); JMenuItem contact_item = new JMenuItem("Kontakt..."); if (Utilities.appLanguage().equals("fr")) { // Extrawunsch med-drugs if (Utilities.appCustomization().equals("meddrugs")) about_item.setText(Constants.APP_NAME); else about_item.setText("A propos de " + Constants.APP_NAME + "..."); contact_item.setText("Contact..."); if (Utilities.appCustomization().equals("meddrugs")) ywesee_item.setText("med-drugs sur Internet"); else ywesee_item.setText(Constants.APP_NAME + " sur Internet"); report_item.setText("Rapport d'erreur..."); } hilfe_menu.add(about_item); hilfe_menu.add(ywesee_item); hilfe_menu.addSeparator(); hilfe_menu.add(report_item); hilfe_menu.addSeparator(); hilfe_menu.add(contact_item); // Menu "Abonnieren" (only for ywesee) JMenu subscribe_menu = new JMenu("Abonnieren"); if (Utilities.appLanguage().equals("fr")) subscribe_menu.setText("Abonnement"); if (Utilities.appCustomization().equals("ywesee")) { menu_bar.add(subscribe_menu); } jframe.setJMenuBar(menu_bar); // ------ Setup toolbar ------ JToolBar toolBar = new JToolBar("Database"); toolBar.setPreferredSize(new Dimension(jframe.getWidth(), 64)); final JToggleButton selectAipsButton = new JToggleButton( new ImageIcon(Constants.IMG_FOLDER + "aips32x32_bright.png")); final JToggleButton selectFavoritesButton = new JToggleButton( new ImageIcon(Constants.IMG_FOLDER + "favorites32x32_bright.png")); final JToggleButton selectInteractionsButton = new JToggleButton( new ImageIcon(Constants.IMG_FOLDER + "interactions32x32_bright.png")); final JToggleButton selectShoppingCartButton = new JToggleButton( new ImageIcon(Constants.IMG_FOLDER + "shoppingcart32x32_bright.png")); final JToggleButton selectComparisonCartButton = new JToggleButton( new ImageIcon(Constants.IMG_FOLDER + "comparisoncart32x32_bright.png")); final JToggleButton list_of_buttons[] = { selectAipsButton, selectFavoritesButton, selectInteractionsButton, selectShoppingCartButton, selectComparisonCartButton }; if (Utilities.appLanguage().equals("de")) { setupButton(selectAipsButton, "Kompendium", "aips32x32_gray.png", "aips32x32_dark.png"); setupButton(selectFavoritesButton, "Favoriten", "favorites32x32_gray.png", "favorites32x32_dark.png"); setupButton(selectInteractionsButton, "Interaktionen", "interactions32x32_gray.png", "interactions32x32_dark.png"); setupButton(selectShoppingCartButton, "Warenkorb", "shoppingcart32x32_gray.png", "shoppingcart32x32_dark.png"); setupButton(selectComparisonCartButton, "Preisvergleich", "comparisoncart32x32_gray.png", "comparisoncart32x32_dark.png"); } else if (Utilities.appLanguage().equals("fr")) { setupButton(selectAipsButton, "Compendium", "aips32x32_gray.png", "aips32x32_dark.png"); setupButton(selectFavoritesButton, "Favorites", "favorites32x32_gray.png", "favorites32x32_dark.png"); setupButton(selectInteractionsButton, "Interactions", "interactions32x32_gray.png", "interactions32x32_dark.png"); setupButton(selectShoppingCartButton, "Panier", "shoppingcart32x32_gray.png", "shoppingcart32x32_dark.png"); setupButton(selectComparisonCartButton, "Preisvergleich", "comparisoncart32x32_gray.png", "comparisoncart32x32_dark.png"); } // Add to toolbar and set up toolBar.setBackground(m_toolbar_bg); toolBar.add(selectAipsButton); toolBar.addSeparator(); toolBar.add(selectFavoritesButton); toolBar.addSeparator(); toolBar.add(selectInteractionsButton); if (!Utilities.appCustomization().equals("zurrose")) { toolBar.addSeparator(); toolBar.add(selectShoppingCartButton); } if (Utilities.appCustomization().equals("zurrorse")) { toolBar.addSeparator(); toolBar.add(selectComparisonCartButton); } toolBar.setRollover(true); toolBar.setFloatable(false); // Progress indicator (not working...) toolBar.addSeparator(new Dimension(32, 32)); toolBar.add(m_progress_indicator); // ------ Setup settingspage ------ final SettingsPage settingsPage = new SettingsPage(jframe, m_rb); // Attach observer to it settingsPage.addObserver(new Observer() { public void update(Observable o, Object arg) { System.out.println(arg); if (m_shopping_cart != null) { // Refresh some stuff m_shopping_basket.clear(); int index = m_shopping_cart.getCartIndex(); if (index > 0) m_web_panel.saveShoppingCartWithIndex(index); m_web_panel.updateShoppingHtml(); } } }); jframe.addWindowListener(new WindowListener() { // Use WindowAdapter! @Override public void windowOpened(WindowEvent e) { } @Override public void windowClosed(WindowEvent e) { m_web_panel.dispose(); Runtime.getRuntime().exit(0); } @Override public void windowClosing(WindowEvent e) { // Save shopping cart int index = m_shopping_cart.getCartIndex(); if (index > 0 && m_web_panel != null) m_web_panel.saveShoppingCartWithIndex(index); } @Override public void windowIconified(WindowEvent e) { } @Override public void windowDeiconified(WindowEvent e) { } @Override public void windowActivated(WindowEvent e) { } @Override public void windowDeactivated(WindowEvent e) { } }); print_item.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent event) { m_web_panel.print(); } }); settings_item.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent event) { settingsPage.display(); } }); quit_item.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent event) { try { // Save shopping cart int index = m_shopping_cart.getCartIndex(); if (index > 0 && m_web_panel != null) m_web_panel.saveShoppingCartWithIndex(index); // Save settings WindowSaver.saveSettings(); m_web_panel.dispose(); Runtime.getRuntime().exit(0); } catch (Exception e) { System.out.println(e); } } }); subscribe_menu.addMenuListener(new MenuListener() { @Override public void menuSelected(MenuEvent event) { if (Utilities.appCustomization().equals("ywesee")) { if (Desktop.isDesktopSupported()) { try { Desktop.getDesktop().browse(new URI( "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=3UM84Z6WLFKZE")); } catch (IOException e) { // TODO: } catch (URISyntaxException r) { // TODO: } } } } @Override public void menuDeselected(MenuEvent event) { // do nothing } @Override public void menuCanceled(MenuEvent event) { // do nothing } }); contact_item.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent event) { if (Utilities.appCustomization().equals("ywesee")) { if (Desktop.isDesktopSupported()) { try { URI mail_to_uri = URI .create("mailto:zdavatz@ywesee.com?subject=AmiKo%20Desktop%20Feedback"); Desktop.getDesktop().mail(mail_to_uri); } catch (IOException e) { // TODO: } } else { AmiKoDialogs cd = new AmiKoDialogs(Utilities.appLanguage(), Utilities.appCustomization()); cd.ContactDialog(); } } else if (Utilities.appCustomization().equals("desitin")) { if (Desktop.isDesktopSupported()) { try { URI mail_to_uri = URI .create("mailto:info@desitin.ch?subject=AmiKo%20Desktop%20Desitin%20Feedback"); Desktop.getDesktop().mail(mail_to_uri); } catch (IOException e) { // TODO: } } else { AmiKoDialogs cd = new AmiKoDialogs(Utilities.appLanguage(), Utilities.appCustomization()); cd.ContactDialog(); } } else if (Utilities.appCustomization().equals("meddrugs")) { if (Desktop.isDesktopSupported()) { try { URI mail_to_uri = URI.create( "mailto:med-drugs@just-medical.com?subject=med-drugs%20desktop%20Feedback"); Desktop.getDesktop().mail(mail_to_uri); } catch (IOException e) { // TODO: } } else { AmiKoDialogs cd = new AmiKoDialogs(Utilities.appLanguage(), Utilities.appCustomization()); cd.ContactDialog(); } } else if (Utilities.appCustomization().equals("zurrose")) { if (Desktop.isDesktopSupported()) { try { Desktop.getDesktop().browse(new URI("www.zurrose.ch/amiko")); } catch (IOException e) { // TODO: } catch (URISyntaxException r) { // TODO: } } } } }); report_item.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent event) { // Check first m_application_folder otherwise resort to // pre-installed report String report_file = m_application_data_folder + "\\" + Constants.DEFAULT_AMIKO_REPORT_BASE + Utilities.appLanguage() + ".html"; if (!(new File(report_file)).exists()) report_file = System.getProperty("user.dir") + "/dbs/" + Constants.DEFAULT_AMIKO_REPORT_BASE + Utilities.appLanguage() + ".html"; // Open report file in browser if (Desktop.isDesktopSupported()) { try { Desktop.getDesktop().browse(new File(report_file).toURI()); } catch (IOException e) { // TODO: } } } }); ywesee_item.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent event) { if (Utilities.appCustomization().equals("ywesee")) { if (Desktop.isDesktopSupported()) { try { Desktop.getDesktop().browse(new URI("http://www.ywesee.com/AmiKo/Desktop")); } catch (IOException e) { // TODO: } catch (URISyntaxException r) { // TODO: } } } else if (Utilities.appCustomization().equals("desitin")) { if (Desktop.isDesktopSupported()) { try { Desktop.getDesktop().browse( new URI("http://www.desitin.ch/produkte/arzneimittel-kompendium-apps/")); } catch (IOException e) { // TODO: } catch (URISyntaxException r) { // TODO: } } } else if (Utilities.appCustomization().equals("meddrugs")) { if (Desktop.isDesktopSupported()) { try { if (Utilities.appLanguage().equals("de")) Desktop.getDesktop().browse(new URI("http://www.med-drugs.ch")); else if (Utilities.appLanguage().equals("fr")) Desktop.getDesktop() .browse(new URI("http://www.med-drugs.ch/index.cfm?&newlang=fr")); } catch (IOException e) { // TODO: } catch (URISyntaxException r) { // TODO: } } } else if (Utilities.appCustomization().equals("zurrose")) { if (Desktop.isDesktopSupported()) { try { Desktop.getDesktop().browse(new URI("www.zurrose.ch/amiko")); } catch (IOException e) { // TODO: } catch (URISyntaxException r) { // TODO: } } } } }); about_item.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent event) { AmiKoDialogs ad = new AmiKoDialogs(Utilities.appLanguage(), Utilities.appCustomization()); ad.AboutDialog(); } }); // Container final Container container = jframe.getContentPane(); container.setBackground(Color.WHITE); container.setLayout(new BorderLayout()); // ==== Toolbar ===== container.add(toolBar, BorderLayout.NORTH); // ==== Left panel ==== JPanel left_panel = new JPanel(); left_panel.setBackground(Color.WHITE); left_panel.setLayout(new GridBagLayout()); GridBagConstraints gbc = new GridBagConstraints(); gbc.fill = GridBagConstraints.BOTH; gbc.anchor = GridBagConstraints.CENTER; gbc.insets = new Insets(2, 2, 2, 2); // ---- Search field ---- final SearchField searchField = new SearchField("Suche Prparat"); if (Utilities.appLanguage().equals("fr")) searchField.setText("Recherche Specialit"); gbc.gridx = 0; gbc.gridy = 0; gbc.gridwidth = gbc.gridheight = 1; gbc.weightx = gbc.weighty = 0.0; // --> container.add(searchField, gbc); left_panel.add(searchField, gbc); // ---- Buttons ---- // Names String l_title = "Prparat"; String l_author = "Inhaberin"; String l_atccode = "Wirkstoff / ATC Code"; String l_regnr = "Zulassungsnummer"; String l_ingredient = "Wirkstoff"; String l_therapy = "Therapie"; String l_search = "Suche"; if (Utilities.appLanguage().equals("fr")) { l_title = "Spcialit"; l_author = "Titulaire"; l_atccode = "Principe Active / Code ATC"; l_regnr = "Nombre Enregistration"; l_ingredient = "Principe Active"; l_therapy = "Thrapie"; l_search = "Recherche"; } ButtonGroup bg = new ButtonGroup(); JToggleButton but_title = new JToggleButton(l_title); setupToggleButton(but_title); bg.add(but_title); gbc.gridx = 0; gbc.gridy = 1; gbc.gridwidth = gbc.gridheight = 1; gbc.weightx = gbc.weighty = 0.0; // --> container.add(but_title, gbc); left_panel.add(but_title, gbc); JToggleButton but_auth = new JToggleButton(l_author); setupToggleButton(but_auth); bg.add(but_auth); gbc.gridx = 0; gbc.gridy += 1; gbc.gridwidth = gbc.gridheight = 1; gbc.weightx = gbc.weighty = 0.0; // --> container.add(but_auth, gbc); left_panel.add(but_auth, gbc); JToggleButton but_atccode = new JToggleButton(l_atccode); setupToggleButton(but_atccode); bg.add(but_atccode); gbc.gridx = 0; gbc.gridy += 1; gbc.gridwidth = gbc.gridheight = 1; gbc.weightx = gbc.weighty = 0.0; // --> container.add(but_atccode, gbc); left_panel.add(but_atccode, gbc); JToggleButton but_regnr = new JToggleButton(l_regnr); setupToggleButton(but_regnr); bg.add(but_regnr); gbc.gridx = 0; gbc.gridy += 1; gbc.gridwidth = gbc.gridheight = 1; gbc.weightx = gbc.weighty = 0.0; // --> container.add(but_regnr, gbc); left_panel.add(but_regnr, gbc); JToggleButton but_therapy = new JToggleButton(l_therapy); setupToggleButton(but_therapy); bg.add(but_therapy); gbc.gridx = 0; gbc.gridy += 1; gbc.gridwidth = gbc.gridheight = 1; gbc.weightx = gbc.weighty = 0.0; // --> container.add(but_therapy, gbc); left_panel.add(but_therapy, gbc); // ---- Card layout ---- final CardLayout cardl = new CardLayout(); cardl.setHgap(-4); // HACK to make things look better!! final JPanel p_results = new JPanel(cardl); m_list_titles = new ListPanel(); m_list_auths = new ListPanel(); m_list_regnrs = new ListPanel(); m_list_atccodes = new ListPanel(); m_list_ingredients = new ListPanel(); m_list_therapies = new ListPanel(); // Contraints gbc.fill = GridBagConstraints.BOTH; gbc.gridx = 0; gbc.gridy += 1; gbc.gridwidth = 1; gbc.gridheight = 10; gbc.weightx = 1.0; gbc.weighty = 1.0; // p_results.add(m_list_titles, l_title); p_results.add(m_list_auths, l_author); p_results.add(m_list_regnrs, l_regnr); p_results.add(m_list_atccodes, l_atccode); p_results.add(m_list_ingredients, l_ingredient); p_results.add(m_list_therapies, l_therapy); // --> container.add(p_results, gbc); left_panel.add(p_results, gbc); left_panel.setBorder(null); // First card to show cardl.show(p_results, l_title); // ==== Right panel ==== JPanel right_panel = new JPanel(); right_panel.setBackground(Color.WHITE); right_panel.setLayout(new GridBagLayout()); // ---- Section titles ---- m_section_titles = null; if (Utilities.appLanguage().equals("de")) { m_section_titles = new IndexPanel(SectionTitle_DE); } else if (Utilities.appLanguage().equals("fr")) { m_section_titles = new IndexPanel(SectionTitle_FR); } m_section_titles.setMinimumSize(new Dimension(150, 150)); m_section_titles.setMaximumSize(new Dimension(320, 1000)); // ---- Fachinformation ---- m_web_panel = new WebPanel2(); m_web_panel.setMinimumSize(new Dimension(320, 150)); // Add JSplitPane on the RIGHT final int Divider_location = 150; final int Divider_size = 10; final JSplitPane split_pane_right = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, m_section_titles, m_web_panel); split_pane_right.setOneTouchExpandable(true); split_pane_right.setDividerLocation(Divider_location); split_pane_right.setDividerSize(Divider_size); // Add JSplitPane on the LEFT JSplitPane split_pane_left = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, left_panel, split_pane_right /* right_panel */); split_pane_left.setOneTouchExpandable(true); split_pane_left.setDividerLocation(320); // Sets the pane divider location split_pane_left.setDividerSize(Divider_size); container.add(split_pane_left, BorderLayout.CENTER); // Add status bar on the bottom JPanel statusPanel = new JPanel(); statusPanel.setPreferredSize(new Dimension(jframe.getWidth(), 16)); statusPanel.setLayout(new BoxLayout(statusPanel, BoxLayout.X_AXIS)); container.add(statusPanel, BorderLayout.SOUTH); final JLabel m_status_label = new JLabel(""); m_status_label.setHorizontalAlignment(SwingConstants.LEFT); statusPanel.add(m_status_label); // Add mouse listener searchField.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { searchField.setText(""); } }); final String final_title = l_title; final String final_author = l_author; final String final_atccode = l_atccode; final String final_regnr = l_regnr; final String final_therapy = l_therapy; final String final_search = l_search; // Internal class that implements switching between buttons final class Toggle { public void toggleButton(JToggleButton jbn) { for (int i = 0; i < list_of_buttons.length; ++i) { if (jbn == list_of_buttons[i]) list_of_buttons[i].setSelected(true); else list_of_buttons[i].setSelected(false); } } } ; // ------ Add toolbar action listeners ------ selectAipsButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent event) { new Toggle().toggleButton(selectAipsButton); // Set state 'aips' if (!m_curr_uistate.getUseMode().equals("aips")) { m_curr_uistate.setUseMode("aips"); // Show middle pane split_pane_right.setDividerSize(Divider_size); split_pane_right.setDividerLocation(Divider_location); m_section_titles.setVisible(true); // SwingUtilities.invokeLater(new Runnable() { @Override public void run() { m_start_time = System.currentTimeMillis(); m_query_str = searchField.getText(); int num_hits = retrieveAipsSearchResults(false); m_status_label.setText(med_search.size() + " Suchresultate in " + (System.currentTimeMillis() - m_start_time) / 1000.0f + " Sek."); // if (med_index < 0 && prev_med_index >= 0) med_index = prev_med_index; m_web_panel.updateText(); if (num_hits == 0) { m_web_panel.emptyPage(); } } }); } } }); selectFavoritesButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent event) { new Toggle().toggleButton(selectFavoritesButton); // Set state 'favorites' if (!m_curr_uistate.getUseMode().equals("favorites")) { m_curr_uistate.setUseMode("favorites"); // Show middle pane split_pane_right.setDividerSize(Divider_size); split_pane_right.setDividerLocation(Divider_location); m_section_titles.setVisible(true); // SwingUtilities.invokeLater(new Runnable() { @Override public void run() { m_start_time = System.currentTimeMillis(); // m_query_str = searchField.getText(); // Clear the search container med_search.clear(); for (String regnr : favorite_meds_set) { List<Medication> meds = m_sqldb.searchRegNr(regnr); if (!meds.isEmpty()) { // Add med database ID med_search.add(meds.get(0)); } } // Sort list of meds Collections.sort(med_search, new Comparator<Medication>() { @Override public int compare(final Medication m1, final Medication m2) { return m1.getTitle().compareTo(m2.getTitle()); } }); sTitle(); cardl.show(p_results, final_title); m_status_label.setText(med_search.size() + " Suchresultate in " + (System.currentTimeMillis() - m_start_time) / 1000.0f + " Sek."); } }); } } }); selectInteractionsButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent event) { new Toggle().toggleButton(selectInteractionsButton); // Set state 'interactions' if (!m_curr_uistate.getUseMode().equals("interactions")) { m_curr_uistate.setUseMode("interactions"); // Show middle pane split_pane_right.setDividerSize(Divider_size); split_pane_right.setDividerLocation(Divider_location); m_section_titles.setVisible(true); // SwingUtilities.invokeLater(new Runnable() { @Override public void run() { m_query_str = searchField.getText(); retrieveAipsSearchResults(false); // Switch to interaction mode m_web_panel.updateInteractionsCart(); m_web_panel.repaint(); m_web_panel.validate(); } }); } } }); selectShoppingCartButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent event) { String email_adr = m_prefs.get("emailadresse", ""); if (email_adr != null && email_adr.length() > 2) // Two chars is the minimum lenght for an email address m_preferences_ok = true; if (m_preferences_ok) { m_preferences_ok = false; // Check always new Toggle().toggleButton(selectShoppingCartButton); // Set state 'shopping' if (!m_curr_uistate.getUseMode().equals("shopping")) { m_curr_uistate.setUseMode("shopping"); // Show middle pane split_pane_right.setDividerSize(Divider_size); split_pane_right.setDividerLocation(Divider_location); m_section_titles.setVisible(true); // Set right panel title m_web_panel.setTitle(m_rb.getString("shoppingCart")); // Switch to shopping cart int index = 1; if (m_shopping_cart != null) { index = m_shopping_cart.getCartIndex(); m_web_panel.loadShoppingCartWithIndex(index); // m_shopping_cart.printShoppingBasket(); } // m_web_panel.updateShoppingHtml(); m_web_panel.updateListOfPackages(); if (m_first_pass == true) { m_first_pass = false; if (Utilities.appCustomization().equals("ywesee")) med_search = m_sqldb.searchAuth("ibsa"); else if (Utilities.appCustomization().equals("desitin")) med_search = m_sqldb.searchAuth("desitin"); sAuth(); cardl.show(p_results, final_author); } } } else { selectShoppingCartButton.setSelected(false); settingsPage.display(); } } }); selectComparisonCartButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent event) { new Toggle().toggleButton(selectComparisonCartButton); // Set state 'comparison' if (!m_curr_uistate.getUseMode().equals("comparison")) { m_curr_uistate.setUseMode("comparison"); // Hide middle pane m_section_titles.setVisible(false); split_pane_right.setDividerLocation(0); split_pane_right.setDividerSize(0); // SwingUtilities.invokeLater(new Runnable() { @Override public void run() { m_start_time = System.currentTimeMillis(); // Set right panel title m_web_panel.setTitle(getTitle("priceComp")); if (med_index >= 0) { if (med_id != null && med_index < med_id.size()) { Medication m = m_sqldb.getMediWithId(med_id.get(med_index)); String atc_code = m.getAtcCode(); if (atc_code != null) { String atc = atc_code.split(";")[0]; m_web_panel.fillComparisonBasket(atc); m_web_panel.updateComparisonCartHtml(); // Update pane on the left retrieveAipsSearchResults(false); } } } m_status_label.setText(rose_search.size() + " Suchresultate in " + (System.currentTimeMillis() - m_start_time) / 1000.0f + " Sek."); } }); } } }); // ------ Add keylistener to text field (type as you go feature) ------ searchField.addKeyListener(new KeyAdapter() { @Override public void keyTyped(KeyEvent e) { // keyReleased(KeyEvent e) // invokeLater potentially in the wrong place... more testing // required SwingUtilities.invokeLater(new Runnable() { @Override public void run() { if (m_curr_uistate.isLoadCart()) m_curr_uistate.restoreUseMode(); m_start_time = System.currentTimeMillis(); m_query_str = searchField.getText(); // Queries for SQLite DB if (!m_query_str.isEmpty()) { if (m_query_type == 0) { if (m_curr_uistate.isComparisonMode()) { rose_search = m_rosedb.searchTitle(m_query_str); } else { med_search = m_sqldb.searchTitle(m_query_str); if (m_curr_uistate.databaseUsed().equals("favorites")) retrieveFavorites(); } sTitle(); cardl.show(p_results, final_title); } else if (m_query_type == 1) { if (m_curr_uistate.isComparisonMode()) { rose_search = m_rosedb.searchSupplier(m_query_str); } else { med_search = m_sqldb.searchAuth(m_query_str); if (m_curr_uistate.databaseUsed().equals("favorites")) retrieveFavorites(); } sAuth(); cardl.show(p_results, final_author); } else if (m_query_type == 2) { if (m_curr_uistate.isComparisonMode()) { rose_search = m_rosedb.searchATC(m_query_str); } else { med_search = m_sqldb.searchATC(m_query_str); if (m_curr_uistate.databaseUsed().equals("favorites")) retrieveFavorites(); } sATC(); cardl.show(p_results, final_atccode); } else if (m_query_type == 3) { if (m_curr_uistate.isComparisonMode()) { rose_search = m_rosedb.searchEan(m_query_str); } else { med_search = m_sqldb.searchRegNr(m_query_str); if (m_curr_uistate.databaseUsed().equals("favorites")) retrieveFavorites(); } sRegNr(); cardl.show(p_results, final_regnr); } else if (m_query_type == 4) { if (m_curr_uistate.isComparisonMode()) { rose_search = m_rosedb.searchTherapy(m_query_str); } else { med_search = m_sqldb.searchApplication(m_query_str); if (m_curr_uistate.databaseUsed().equals("favorites")) retrieveFavorites(); } sTherapy(); cardl.show(p_results, final_therapy); } else { // do nothing } int num_hits = 0; if (m_curr_uistate.isComparisonMode()) num_hits = rose_search.size(); else num_hits = med_search.size(); m_status_label.setText(num_hits + " Suchresultate in " + (System.currentTimeMillis() - m_start_time) / 1000.0f + " Sek."); } } }); } }); // Add actionlisteners but_title.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent ae) { if (m_curr_uistate.isLoadCart()) m_curr_uistate.restoreUseMode(); searchField.setText(final_search + " " + final_title); m_curr_uistate.setQueryType(m_query_type = 0); sTitle(); cardl.show(p_results, final_title); } }); but_auth.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent ae) { if (m_curr_uistate.isLoadCart()) m_curr_uistate.restoreUseMode(); searchField.setText(final_search + " " + final_author); m_curr_uistate.setQueryType(m_query_type = 1); sAuth(); cardl.show(p_results, final_author); } }); but_atccode.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent ae) { if (m_curr_uistate.isLoadCart()) m_curr_uistate.restoreUseMode(); searchField.setText(final_search + " " + final_atccode); m_curr_uistate.setQueryType(m_query_type = 2); sATC(); cardl.show(p_results, final_atccode); } }); but_regnr.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent ae) { if (m_curr_uistate.isLoadCart()) m_curr_uistate.restoreUseMode(); searchField.setText(final_search + " " + final_regnr); m_curr_uistate.setQueryType(m_query_type = 3); sRegNr(); cardl.show(p_results, final_regnr); } }); but_therapy.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent ae) { if (m_curr_uistate.isLoadCart()) m_curr_uistate.restoreUseMode(); searchField.setText(final_search + " " + final_therapy); m_curr_uistate.setQueryType(m_query_type = 4); sTherapy(); cardl.show(p_results, final_therapy); } }); // Display window jframe.pack(); // jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jframe.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); // jframe.setAlwaysOnTop(true); jframe.setVisible(true); // Check if user has selected an alternative database /* * NOTE: 21/11/2013: This solution is put on ice. Favored is a solution * where the database selected by the user is saved in a default folder * (see variable "m_application_data_folder") */ /* * try { WindowSaver.loadSettings(jframe); String database_path = * WindowSaver.getDbPath(); if (database_path!=null) * m_sqldb.loadDBFromPath(database_path); } catch(IOException e) { * e.printStackTrace(); } */ // Load AIPS database selectAipsButton.setSelected(true); selectFavoritesButton.setSelected(false); m_curr_uistate.setUseMode("aips"); med_search = m_sqldb.searchTitle(""); sTitle(); // Used instead of sTitle (which is slow) cardl.show(p_results, final_title); // Add menu item listeners updatedb_item.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent event) { if (m_mutex_update == false) { m_mutex_update = true; String db_file = m_maindb_update.doIt(jframe, Utilities.appLanguage(), Utilities.appCustomization(), m_application_data_folder, m_full_db_update); // ... and update time if (m_full_db_update == true) { DateTime dT = new DateTime(); m_prefs.put("updateTime", dT.now().toString()); } // if (!db_file.isEmpty()) { // Save db path (can't hurt) WindowSaver.setDbPath(db_file); } } } }); choosedb_item.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent event) { String db_file = m_maindb_update.chooseFromFile(jframe, Utilities.appLanguage(), Utilities.appCustomization(), m_application_data_folder); // ... and update time DateTime dT = new DateTime(); m_prefs.put("updateTime", dT.now().toString()); // if (!db_file.isEmpty()) { // Save db path (can't hurt) WindowSaver.setDbPath(db_file); } } }); /** * Observers */ // Attach observer to 'm_update' m_maindb_update.addObserver(new Observer() { @Override public void update(Observable o, Object arg) { System.out.println(arg); // Reset flag m_full_db_update = true; m_mutex_update = false; // Refresh some stuff after update loadAuthors(); m_emailer.loadMap(); settingsPage.load_gln_codes(); if (m_shopping_cart != null) { m_shopping_cart.load_conditions(); m_shopping_cart.load_glns(); } // Empty shopping basket if (m_curr_uistate.isShoppingMode()) { m_shopping_basket.clear(); int index = m_shopping_cart.getCartIndex(); if (index > 0) m_web_panel.saveShoppingCartWithIndex(index); m_web_panel.updateShoppingHtml(); } if (m_curr_uistate.isComparisonMode()) m_web_panel.setTitle(getTitle("priceComp")); } }); // Attach observer to 'm_emailer' m_emailer.addObserver(new Observer() { @Override public void update(Observable o, Object arg) { System.out.println(arg); // Empty shopping basket m_shopping_basket.clear(); int index = m_shopping_cart.getCartIndex(); if (index > 0) m_web_panel.saveShoppingCartWithIndex(index); m_web_panel.updateShoppingHtml(); } }); // Attach observer to "m_comparison_cart" m_comparison_cart.addObserver(new Observer() { @Override public void update(Observable o, Object arg) { System.out.println(arg); m_web_panel.setTitle(getTitle("priceComp")); m_comparison_cart.clearUploadList(); m_web_panel.updateComparisonCartHtml(); new AmiKoDialogs(Utilities.appLanguage(), Utilities.appCustomization()).UploadDialog((String) arg); } }); // If command line options are provided start app with a particular title or eancode if (commandLineOptionsProvided()) { if (!CML_OPT_TITLE.isEmpty()) startAppWithTitle(but_title); else if (!CML_OPT_EANCODE.isEmpty()) startAppWithEancode(but_regnr); else if (!CML_OPT_REGNR.isEmpty()) startAppWithRegnr(but_regnr); } // Start timer Timer global_timer = new Timer(); // Time checks all 2 minutes (120'000 milliseconds) global_timer.scheduleAtFixedRate(new TimerTask() { @Override public void run() { checkIfUpdateRequired(updatedb_item); } }, 2 * 60 * 1000, 2 * 60 * 1000); }
From source file:com.peterbochs.PeterBochsDebugger.java
private JPanel getJMainPanel() { if (jMainPanel == null) { jMainPanel = new JPanel(); CardLayout jMainPanelLayout = new CardLayout(); jMainPanel.setLayout(jMainPanelLayout); {/*from w w w .j a v a2 s. c o m*/ jMainPanel.add(getJMaximizableTabbedPane_BasePanel1(), "jMaximizableTabbedPane_BasePanel1"); jMainPanel.add(getJInstrumentPanel(), "jInstrumentPanel"); jMainPanel.add(getJRunningLabel(), "Running Label"); jMainPanel.add(getLogPanel1(), "logPanel1"); jMainPanel.add(getOsLogPanel1(), "oSLogPanel1"); jMainPanel.add(getJRunningPanel(), "Running Label 2"); jMainPanel.add(getSourceLevelDebugger(), "sourceLevelDebugger"); } } return jMainPanel; }
From source file:src.gui.ItSIMPLE.java
private JPanel getMainTabbedPane() { if (mainTabbedPane == null) { mainTabbedPane = new JPanel(new CardLayout()); mainTabbedPane.add(getUmlSplitPane(), "Modeling"); mainTabbedPane.add(getAnalysisPane(), "Analysis"); //mainTabbedPane.add(getPetriSplitPane(), "Petri Net"); mainTabbedPane.add(getPddlSplitPane(), "PDDL"); mainTabbedPane.add(getPlanSimPane(), "Planning"); //mainTabbedPane.addChangeListener(new ChangeListener(){ // public void stateChanged(ChangeEvent evt) { // switch(mainTabbedPane.getSelectedIndex()){ ///* ww w . ja v a 2 s . co m*/ // case 1:{ // } // break; // // case 2:{ // } // break; // // } // } // }); CardLayout cl = (CardLayout) (mainTabbedPane.getLayout()); cl.show(mainTabbedPane, "UML"); } return mainTabbedPane; }
From source file:com.peterbochs.PeterBochsDebugger.java
private JPanel getJOSDebugStandardPanel() { if (jOSDebugStandardPanel == null) { jOSDebugStandardPanel = new JPanel(); CardLayout jOSDebugStandardPanelLayout = new CardLayout(); jOSDebugStandardPanel.setLayout(jOSDebugStandardPanelLayout); jOSDebugStandardPanel.add(getJOSDebugInfoErrorLabel(), "OS debug error label"); jOSDebugStandardPanel.add(getJOSDebugInformationPanel1(), "jOSDebugInformationPanel1"); }/*w w w . j a v a2s. c o m*/ return jOSDebugStandardPanel; }