@Override public void actionPerformed(ActionEvent evt) { JCheckBoxMenuItem menuItem = (JCheckBoxMenuItem) evt.getSource(); boolean curState = menuItem.isSelected(); TreePath path = resultTree.getSelectionPath(); DefaultMutableTreeNode operNode = (DefaultMutableTreeNode) path.getLastPathComponent(); HyperSearchOperationNode operNodeObj = (HyperSearchOperationNode) operNode.getUserObject(); if (curState) operNodeObj.cacheResultNodes(operNode); operNode.removeAllChildren(); if (curState) { Exception excp = null; try { operNodeObj.insertTreeNodes(resultTree, operNode); } catch (Exception ex) { operNodeObj.restoreFlatNodes(resultTree, operNode); menuItem.setSelected(false); excp = ex; } finally { ((DefaultTreeModel) resultTree.getModel()).nodeStructureChanged(operNode); expandAllNodes(operNode); resultTree.scrollPathToVisible(new TreePath(operNode.getPath())); } if (excp != null) throw new RuntimeException(excp); } else operNodeObj.restoreFlatNodes(resultTree, operNode); operNodeObj.setTreeViewDisplayed(menuItem.isSelected()); }
/** Unconfigures a JCheckBoxMenuItem for an Action. */ public static void unconfigureJCheckBoxMenuItem(JCheckBoxMenuItem mi, Action a) { PropertyChangeListener propertyHandler = (PropertyChangeListener) mi.getClientProperty("actionPropertyHandler"); if (propertyHandler != null) { a.removePropertyChangeListener(propertyHandler); mi.putClientProperty("actionPropertyHandler", null); } }
private void generateMenus() { _menuBar = new JMenuBar(); JMenu menuFile = new JMenu("File"); JMenu menuGame = new JMenu("Game"); JMenu menuHelp = new JMenu("Help"); menuFile.setMnemonic('f'); menuGame.setMnemonic('g'); menuHelp.setMnemonic('h'); JMenuItem menuFileExit = new JMenuItem("Exit", 'x'); JMenuItem menuFileNew = new JMenuItem("New", 'n'); _menuGameGo = new JMenuItem("Go", 'g'); _menuGamePause = new JMenuItem("Pause", 'p'); _menuGamePause.setEnabled(false); JCheckBoxMenuItem menuGameZoomToggle = new JCheckBoxMenuItem("Zoom 2X", false); menuGameZoomToggle.setMnemonic('z'); JMenuItem menuGameOptions = new JMenuItem("Options...", 'o'); JMenuItem menuHelpAbout = new JMenuItem("About", 'a'); menuFileExit.addActionListener(this); menuFileNew.addActionListener(this); _menuGameGo.addActionListener(this); _menuGamePause.addActionListener(this); menuGameZoomToggle.addActionListener(this); menuGameOptions.addActionListener(this); menuHelpAbout.addActionListener(this); menuFile.add(menuFileNew); menuFile.add(menuFileExit); menuGame.add(_menuGameGo); menuGame.add(_menuGamePause); menuGame.add(menuGameZoomToggle); menuGame.add(menuGameOptions); menuHelp.add(menuHelpAbout); _menuBar.add(menuFile); _menuBar.add(menuGame); _menuBar.add(menuHelp); setJMenuBar(_menuBar); }
/** Configures a JCheckBoxMenuItem for an Action. */ public static void configureJCheckBoxMenuItem(final JCheckBoxMenuItem mi, final Action a) { mi.setSelected((Boolean) a.getValue(Actions.SELECTED_KEY)); PropertyChangeListener propertyHandler = new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent evt) { if (evt.getPropertyName().equals(Actions.SELECTED_KEY)) { mi.setSelected((Boolean) a.getValue(Actions.SELECTED_KEY)); } } }; a.addPropertyChangeListener(propertyHandler); mi.putClientProperty("actionPropertyHandler", propertyHandler); }
public Vector getItems() { Vector items = new Vector(); ActionListener al = new PopupMenuHandler(); JMenuItem colorItem = new JMenuItem(colorString); colorItem.addActionListener(al); items.addElement(colorItem); JCheckBoxMenuItem dashedItem = new JCheckBoxMenuItem(dashedString); dashedItem.setSelected(dashed); dashedItem.addActionListener(al); items.addElement(dashedItem); return items; }
// enable/disable all menu items/actions private void setAllEnabled(boolean enabled) { DbgOutput.println(2, "enabled: " + enabled); fileMenu.setEnabled(enabled); newItem.setEnabled(enabled); openItem.setEnabled(enabled); closeItem.setEnabled(enabled); // dumpItem.setEnabled(enabled); flushItem.setEnabled(enabled); optionsItem.setEnabled(enabled); settingsItem.setEnabled(enabled); debugMenu.setEnabled(enabled); stepAction.setEnabled(enabled); stopAction.setEnabled(enabled); cancelAction.setEnabled(enabled); nextAction.setEnabled(enabled); contAction.setEnabled(enabled); breakpointsItem.setEnabled(enabled); opsMenu.setEnabled(enabled); insertItem.setEnabled(enabled); deleteItem.setEnabled(enabled); searchItem.setEnabled(enabled); executeItem.setEnabled(enabled); treeStatsMenu.setEnabled(enabled); utilItem.setEnabled(enabled); predSzItem.setEnabled(enabled); slotCntItem.setEnabled(enabled); analysisMenu.setEnabled(enabled); newAnalysisItem.setEnabled(enabled); openAnalysisItem.setEnabled(enabled); completeAnalysisItem.setEnabled(enabled); wkldStatsItem.setEnabled(enabled); splitStatsItem.setEnabled(enabled); penaltyStatsItem.setEnabled(enabled); // these are never disabled windowsMenu.setEnabled(true); showCmdsItem.setEnabled(true); showResultsItem.setEnabled(true); showTraceItem.setEnabled(true); tileItem.setEnabled(true); }
public DescPropPopup() { super("Descriptor Properties"); v = new JCheckBoxMenuItem("Valid"); v.addActionListener(new ValidAction()); p = new JCheckBoxMenuItem("Propagating"); p.addActionListener(new PropAction()); delete = new JMenuItem("Delete"); delete.addActionListener(new DeleteAction()); duplicate = new JMenuItem("Duplicate"); duplicate.addActionListener(new DuplicateAction()); interp = new JMenuItem("Interpolate..."); interp.addActionListener(new InterpAction()); interpToMark = new JMenu("Interpolate to Mark"); interpToMark.setEnabled(false); itmAction = new InterpToMarkAction(); shift = new JMenuItem("Shift..."); shift.addActionListener(new ShiftAction()); shiftToMark = new JMenu("Shift to Mark"); shiftToMark.setEnabled(false); stmAction = new ShiftToMarkAction(); occlusions = new JMenuItem("Occlusions..."); occAction = new OccAction(); occlusions.addActionListener(occAction); occSeparator = new JSeparator(); wrt = new JCheckBoxMenuItem("Display with Respect To", false); wrt.addActionListener(new WithRespectToAction()); add(occlusions); add(occSeparator); add(v); add(p); add(occSeparator); add(delete); add(duplicate); add(occSeparator); add(interp); add(interpToMark); add(occSeparator); add(shift); add(shiftToMark); add(occSeparator); add(wrt); }
/** Create the menu bar for the GUI */ private void createMenu() { // Create menu bar menuBar = new JMenuBar(); clientFrame.setJMenuBar(menuBar); // Create menus fileMenu = new JMenu("File"); helpMenu = new JMenu("Help"); // Add menus to bar menuBar.add(fileMenu); menuBar.add(helpMenu); // Create File Menu Items hostItem = new JCheckBoxMenuItem("Allow Uploads", true); portItem = new JCheckBoxMenuItem("Use Passive Mode", true); exitItem = new JMenuItem("Exit"); // Add Items to File Menu fileMenu.add(hostItem); fileMenu.add(portItem); fileMenu.addSeparator(); fileMenu.add(exitItem); // Create Help Menu Items helpItem = new JMenuItem("Help"); aboutItem = new JMenuItem("About LeetFTP"); // Add Items to Help Menu helpMenu.add(helpItem); helpMenu.addSeparator(); helpMenu.add(aboutItem); // Create menu action handler and set it active MenuHandler menuHandler = new MenuHandler(); hostItem.addActionListener(menuHandler); portItem.addActionListener(menuHandler); exitItem.addActionListener(menuHandler); helpItem.addActionListener(menuHandler); aboutItem.addActionListener(menuHandler); }
private void addCovMatrixTestMenuItems(JMenu test) { IndTestType testType = getTestType(); if (testType != IndTestType.FISHER_Z // && testType != IndTestType.CORRELATION_T ) { setTestType(IndTestType.FISHER_Z); } ButtonGroup group = new ButtonGroup(); JCheckBoxMenuItem fishersZ = new JCheckBoxMenuItem("Fisher's Z"); group.add(fishersZ); test.add(fishersZ); // JCheckBoxMenuItem tTest = new JCheckBoxMenuItem("Cramer's T"); // group.add(tTest); // test.add(tTest); testType = getTestType(); if (testType == IndTestType.FISHER_Z) { fishersZ.setSelected(true); } // else if (testType == IndTestType.CORRELATION_T) { // tTest.setSelected(true); // } fishersZ.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { setTestType(IndTestType.FISHER_Z); JOptionPane.showMessageDialog(JOptionUtils.centeringComp(), "Using Fisher's Z."); } }); // tTest.addActionListener(new ActionListener() { // public void actionPerformed(ActionEvent e) { // setTestType(IndTestType.CORRELATION_T); // JOptionPane.showMessageDialog(JOptionUtils.centeringComp(), // "Using Cramer's T."); // } // }); }
private void createWindowsMenu() { windowsMenu = new JMenu("Windows"); menuBar.add(windowsMenu); showCmdsItem = new JCheckBoxMenuItem("Show Commands"); showCmdsItem.setState(true); windowsMenu.add(showCmdsItem); showResultsItem = new JCheckBoxMenuItem("Show Results"); showResultsItem.setState(true); windowsMenu.add(showResultsItem); showTraceItem = new JCheckBoxMenuItem("Show Trace Output"); showTraceItem.setState(true); windowsMenu.add(showTraceItem); tileItem = new JMenuItem("Tile"); tileItem.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent event) { MainWindow.this.tile(); } }); windowsMenu.add(tileItem); }
public void mabeShowPopup(MouseEvent e) { if (e.isPopupTrigger()) { final JPopupMenu contextMenu = new JPopupMenu(); int row = view.getTable().rowAtPoint(e.getPoint()); ListTableModel<PatientModel> tModel = getTableModel(); PatientModel obj = tModel.getObject(row); int selected = view.getTable().getSelectedRow(); if (row == selected && obj != null) { contextMenu.add( new JMenuItem(new ReflectAction("カルテを開く", PatientSearchImpl.this, "openKarte"))); contextMenu.addSeparator(); // s.oh^ 2014/08/19 ID権限 // contextMenu.add(new JMenuItem(copyAction)); // contextMenu.add(new JMenuItem(new ReflectAction("受付登録", PatientSearchImpl.this, // "addAsPvt"))); // contextMenu.addSeparator(); if (!Project.isOtherCare()) { contextMenu.add(new JMenuItem(copyAction)); contextMenu.add( new JMenuItem(new ReflectAction("受付登録", PatientSearchImpl.this, "addAsPvt"))); contextMenu.addSeparator(); } // s.oh$ } JCheckBoxMenuItem item = new JCheckBoxMenuItem("年齢表示"); contextMenu.add(item); item.setSelected(ageDisplay); item.addActionListener( (ActionListener) EventHandler.create( ActionListener.class, PatientSearchImpl.this, "switchAgeDisplay")); contextMenu.show(e.getComponent(), e.getX(), e.getY()); } }
// {{{ showPopupMenu method private void showPopupMenu(MouseEvent evt) { TreePath path = resultTree.getSelectionPath(); DefaultMutableTreeNode node = (DefaultMutableTreeNode) path.getLastPathComponent(); popupMenu = new JPopupMenu(); Object userObj = node.getUserObject(); if (userObj instanceof HyperSearchFileNode || userObj instanceof HyperSearchResult) { popupMenu.add(new GoToNodeAction("hypersearch-results.open", M_OPEN)); popupMenu.add(new GoToNodeAction("hypersearch-results.open-view", M_OPEN_NEW_VIEW)); popupMenu.add( new GoToNodeAction("hypersearch-results.open-plain-view", M_OPEN_NEW_PLAIN_VIEW)); popupMenu.add(new GoToNodeAction("hypersearch-results.open-split", M_OPEN_NEW_SPLIT)); } if (!(userObj instanceof HyperSearchFolderNode)) popupMenu.add(new RemoveTreeNodeAction()); popupMenu.add(new ExpandChildTreeNodesAction()); if (userObj instanceof HyperSearchFolderNode || userObj instanceof HyperSearchOperationNode) { popupMenu.add(new CollapseChildTreeNodesAction()); if (userObj instanceof HyperSearchFolderNode) popupMenu.add(new NewSearchAction()); } if (userObj instanceof HyperSearchOperationNode) { popupMenu.add(new JPopupMenu.Separator()); HyperSearchOperationNode resultNode = (HyperSearchOperationNode) userObj; JCheckBoxMenuItem chkItem = new JCheckBoxMenuItem( jEdit.getProperty("hypersearch-results.tree-view"), resultNode.isTreeViewDisplayed()); chkItem.addActionListener(new TreeDisplayAction()); popupMenu.add(chkItem); popupMenu.add(new RedoSearchAction((HyperSearchOperationNode) userObj)); } popupMenu.add(new CopyToClipboardAction()); GUIUtilities.showPopupMenu(popupMenu, evt.getComponent(), evt.getX(), evt.getY()); evt.consume(); } // }}}
public void show(Component invoker, int x, int y) { ViperViewMediator mediator = getMediator(); Point pnt = new Point(x, y); EnhancedTable tab = getTable(); int row = tab.rowAtPoint(pnt); desc = getCurrentModel().getDescriptorAtRow(row); int col = tab.columnAtPoint(pnt); Object cellValue = tab.getValueAt(row, col); if (cellValue instanceof Attribute) { attr = (Attribute) cellValue; // hide the "Occlusions..." option when we're not dealing with a Textline object boolean isTextline = attr.getAttrConfig().getAttrType().endsWith("textline"); occlusions.setVisible(isTextline); occSeparator.setVisible(isTextline); Instant now = mediator.getCurrentFrame(); if (now == null) { mediator.getDisplayWRTManager().setAttribute(null, null); wrt.setEnabled(false); wrt.setSelected(false); } else { boolean isDwrt = attr == mediator.getDisplayWRTManager().getAttribute(); boolean dwrtable = (attr.getAttrValueAtInstant(now) instanceof HasCentroid && attr.getDescriptor().getValidRange().contains(now)); wrt.setEnabled(dwrtable); wrt.setSelected(isDwrt); } } else { attr = null; wrt.setEnabled(false); wrt.setSelected(false); } if (null != desc) { PropagateInterpolateModule proper = getMediator().getPropagator(); p.setSelected(proper.isPropagatingThis(desc)); v.setSelected(mediator.isThisValidNow(desc)); resetMarks(); super.show(invoker, x, y); } }
public static void makeMenuBar(JFrame frame, final AirspaceBuilderController controller) { JMenuBar menuBar = new JMenuBar(); final JCheckBoxMenuItem resizeNewShapesItem; final JCheckBoxMenuItem enableEditItem; JMenu menu = new JMenu("File"); { JMenuItem item = new JMenuItem("Open..."); item.setAccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_O, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask())); item.setActionCommand(OPEN); item.addActionListener(controller); menu.add(item); item = new JMenuItem("Open URL..."); item.setActionCommand(OPEN_URL); item.addActionListener(controller); menu.add(item); item = new JMenuItem("Save..."); item.setAccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_S, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask())); item.setActionCommand(SAVE); item.addActionListener(controller); menu.add(item); menu.addSeparator(); item = new JMenuItem("Load Demo Shapes"); item.setActionCommand(OPEN_DEMO_AIRSPACES); item.addActionListener(controller); menu.add(item); } menuBar.add(menu); menu = new JMenu("Shape"); { JMenu subMenu = new JMenu("New"); for (final AirspaceFactory factory : defaultAirspaceFactories) { JMenuItem item = new JMenuItem(factory.toString()); item.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { controller.createNewEntry(factory); } }); subMenu.add(item); } menu.add(subMenu); resizeNewShapesItem = new JCheckBoxMenuItem("Fit new shapes to viewport"); resizeNewShapesItem.setActionCommand(SIZE_NEW_SHAPES_TO_VIEWPORT); resizeNewShapesItem.addActionListener(controller); resizeNewShapesItem.setState(controller.isResizeNewShapesToViewport()); menu.add(resizeNewShapesItem); enableEditItem = new JCheckBoxMenuItem("Enable shape editing"); enableEditItem.setActionCommand(ENABLE_EDIT); enableEditItem.addActionListener(controller); enableEditItem.setState(controller.isEnableEdit()); menu.add(enableEditItem); } menuBar.add(menu); menu = new JMenu("Selection"); { JMenuItem item = new JMenuItem("Deselect"); item.setAccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_D, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask())); item.setActionCommand(CLEAR_SELECTION); item.addActionListener(controller); menu.add(item); item = new JMenuItem("Delete"); item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, 0)); item.setActionCommand(REMOVE_SELECTED); item.addActionListener(controller); menu.add(item); } menuBar.add(menu); frame.setJMenuBar(menuBar); controller.addPropertyChangeListener( new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent e) { if (SIZE_NEW_SHAPES_TO_VIEWPORT.equals((e.getPropertyName()))) { resizeNewShapesItem.setSelected(controller.isResizeNewShapesToViewport()); } else if (ENABLE_EDIT.equals(e.getPropertyName())) { enableEditItem.setSelected(controller.isEnableEdit()); } } }); }
public Check() { super( "Substance test with very very very very very very very very very very very very very very long title"); final ClassLoader cl = Thread.currentThread().getContextClassLoader(); if (UIManager.getLookAndFeel() instanceof SubstanceLookAndFeel) { setIconImage( SubstanceLogo.getLogoImage( SubstanceLookAndFeel.getCurrentSkin(this.getRootPane()) .getColorScheme( DecorationAreaType.PRIMARY_TITLE_PANE, ColorSchemeAssociationKind.FILL, ComponentState.ENABLED))); } SubstanceLookAndFeel.registerSkinChangeListener( new SkinChangeListener() { @Override public void skinChanged() { SwingUtilities.invokeLater( new Runnable() { @Override public void run() { setIconImage( SubstanceLogo.getLogoImage( SubstanceLookAndFeel.getCurrentSkin(Check.this.getRootPane()) .getColorScheme( DecorationAreaType.PRIMARY_TITLE_PANE, ColorSchemeAssociationKind.FILL, ComponentState.ENABLED))); } }); } }); setLayout(new BorderLayout()); jtp = new JTabbedPane(); try { mainTabPreviewPainter = new MyMainTabPreviewPainter(); jtp.putClientProperty(LafWidget.TABBED_PANE_PREVIEW_PAINTER, mainTabPreviewPainter); } catch (Throwable e) { } jtp.getModel().addChangeListener(new TabSwitchListener()); final JXPanel jxPanel = new JXPanel(new BorderLayout()); toolbar = getToolbar("", 22, true); jxPanel.add(toolbar, BorderLayout.NORTH); JXStatusBar statusBar = getStatusBar(jxPanel, jtp); this.add(statusBar, BorderLayout.SOUTH); taskPaneContainer = new JXTaskPaneContainer() { @Override public boolean getScrollableTracksViewportWidth() { return false; } }; taskPaneContainer.setScrollableTracksViewportHeight(false); taskPaneContainer.setScrollableTracksViewportWidth(false); mainTaskPane = new JXTaskPane(); mainTaskPane.setLayout(new BorderLayout()); JPanel mainControlPanel = ControlPanelFactory.getMainControlPanel(this, jtp, mainTabPreviewPainter, toolbar); // mainControlPanel.setOpaque(false); mainTaskPane.add(mainControlPanel, BorderLayout.CENTER); mainTaskPane.setTitle("General settings"); mainTaskPane.setIcon(getIcon("JFrameColor16")); mainTaskPane.setCollapsed(true); taskPaneContainer.add(mainTaskPane); JPanel dialogControlPanel = ControlPanelFactory.getDialogControlPanel(this); JXTaskPane dialogTaskPane = new JXTaskPane(); dialogTaskPane.setLayout(new BorderLayout()); dialogTaskPane.add(dialogControlPanel, BorderLayout.CENTER); dialogTaskPane.setTitle("Frames & Dialogs"); dialogTaskPane.setIcon(getIcon("JDialogColor16")); dialogTaskPane.setCollapsed(true); // dialogTaskPane.setOpaque(false); taskPaneContainer.add(dialogTaskPane); currentSpecificTaskPane = null; final JScrollPane scrollPane = new JScrollPane( taskPaneContainer, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); SubstanceLookAndFeel.setDecorationType(scrollPane, DecorationAreaType.GENERAL); // scrollPane.setOpaque(false); // scrollPane.getViewport().setOpaque(false); JPanel mainPanel = new JPanel(); mainPanel.add(scrollPane); mainPanel.add(jtp); mainPanel.setLayout( new LayoutManager() { @Override public void addLayoutComponent(String name, Component comp) {} @Override public Dimension minimumLayoutSize(Container parent) { Dimension min1 = scrollPane.getMinimumSize(); Dimension min2 = jtp.getMinimumSize(); return new Dimension(min1.width + min2.width, min1.height + min2.height); } @Override public void layoutContainer(Container parent) { // give 30% width to task pane container and // 70% width to the tabbed pane with controls. int width = parent.getWidth(); int height = parent.getHeight(); scrollPane.setBounds(0, 0, (int) (0.3 * width), height); jtp.setBounds((int) (0.3 * width), 0, width - (int) (0.3 * width), height); } @Override public Dimension preferredLayoutSize(Container parent) { Dimension pref1 = scrollPane.getPreferredSize(); Dimension pref2 = jtp.getPreferredSize(); return new Dimension(pref1.width + pref2.width, pref1.height + pref2.height); } @Override public void removeLayoutComponent(Component comp) {} }); jxPanel.add(mainPanel, BorderLayout.CENTER); this.add(jxPanel, BorderLayout.CENTER); setPreferredSize(new Dimension(400, 400)); this.setSize(getPreferredSize()); setMinimumSize(getPreferredSize()); ButtonsPanel buttonsPanel = new ButtonsPanel(); jtp.addTab("Buttons", getIcon("JButtonColor16"), buttonsPanel); getRootPane().setDefaultButton(buttonsPanel.defaultButton); jtp.addTab("Combo box", getIcon("JComboBoxColor16"), new CombosPanel()); jtp.addTab("Scroll pane", getIcon("JScrollPaneColor16"), new ScrollPanel()); TabCloseCallback closeCallback = new TabCloseCallback() { @Override public TabCloseKind onAreaClick( JTabbedPane tabbedPane, int tabIndex, MouseEvent mouseEvent) { if (mouseEvent.getButton() != MouseEvent.BUTTON3) return TabCloseKind.NONE; if (mouseEvent.isShiftDown()) { return TabCloseKind.ALL; } return TabCloseKind.THIS; } @Override public TabCloseKind onCloseButtonClick( JTabbedPane tabbedPane, int tabIndex, MouseEvent mouseEvent) { if (mouseEvent.isAltDown()) { return TabCloseKind.ALL_BUT_THIS; } if (mouseEvent.isShiftDown()) { return TabCloseKind.ALL; } return TabCloseKind.THIS; } @Override public String getAreaTooltip(JTabbedPane tabbedPane, int tabIndex) { return null; } @Override public String getCloseButtonTooltip(JTabbedPane tabbedPane, int tabIndex) { StringBuffer result = new StringBuffer(); result.append("<html><body>"); result.append("Mouse click closes <b>" + tabbedPane.getTitleAt(tabIndex) + "</b> tab"); result.append( "<br><b>Alt</b>-Mouse click closes all tabs but <b>" + tabbedPane.getTitleAt(tabIndex) + "</b> tab"); result.append("<br><b>Shift</b>-Mouse click closes all tabs"); result.append("</body></html>"); return result.toString(); } }; try { TabPanel tp = new TabPanel(); tp.jtp.putClientProperty(SubstanceLookAndFeel.TABBED_PANE_CLOSE_CALLBACK, closeCallback); jtp.addTab("Tabs", getIcon("JTabbedPaneColor16"), tp); } catch (NoClassDefFoundError ncdfe) { } jtp.addTab("Split", new SplitPanel()); jtp.addTab("Desktop", getIcon("JDesktopPaneColor16"), new DesktopPanel()); jtp.addTab("Text fields", getIcon("JTextPaneColor16"), new TextFieldsPanel()); jtp.addTab("Table", getIcon("JTableColor16"), new TablePanel()); try { jtp.addTab("List", getIcon("JListColor16"), new ListPanel()); } catch (NoClassDefFoundError ncdfe) { } jtp.addTab("Slider", getIcon("JSliderColor16"), new SliderPanel()); jtp.addTab("Progress bar", getIcon("JProgressBarColor16"), new ProgressBarPanel()); jtp.addTab("Spinner", getIcon("JSpinnerColor16"), new SpinnerPanel()); jtp.addTab("Tree", getIcon("JTreeColor16"), new TreePanel()); jtp.addTab("File tree", getIcon("JTreeColor16"), new FileTreePanel()); jtp.addTab("Cards", new CardPanel()); JPanel verticalButtonPanel = new JPanel(); verticalButtonPanel.setLayout(new GridLayout(1, 3)); verticalButtonPanel.add(new JButton("Vert button 1")); verticalButtonPanel.add(new JButton("Vert button 2")); JPanel smallVerticalButtonPanel = new JPanel(); smallVerticalButtonPanel.setLayout(new GridLayout(4, 4)); for (int row = 0; row < 4; row++) { for (int col = 0; col < 4; col++) { JButton vertButton = new JButton("vert"); vertButton.setToolTipText("Vertical button " + row + ":" + col); smallVerticalButtonPanel.add(vertButton); } } verticalButtonPanel.add(smallVerticalButtonPanel); jtp.addTab("V-Buttons", verticalButtonPanel); jtp.addTab("Colored", new ColoredControlsPanel()); jtp.addTab("Colorized", new ColorizedControlsPanel()); jtp.addTab("Cells", new CellsPanel()); jtp.addTab("Sizes", new SizesPanel()); jtp.addTab("H-Align", new HAlignmentPanel()); jtp.addTab("V-Align", new VAlignmentPanel()); // sample menu bar JMenuBar jmb = new JMenuBar(); if (UIManager.getLookAndFeel() instanceof SubstanceLookAndFeel) { jmb.add(SampleMenuFactory.getSkinMenu()); jmb.add(SampleMenuFactory.getTransformMenu()); } JMenu coloredMenu = new JMenu("Colors"); coloredMenu.setMnemonic('0'); JMenuItem coloredMI = new JMenuItem("Italic red"); coloredMI.setFont(coloredMI.getFont().deriveFont(Font.ITALIC)); coloredMI.setForeground(Color.red); coloredMenu.add(coloredMI); JRadioButtonMenuItem coloredRBMI = new JRadioButtonMenuItem("Bold green"); coloredRBMI.setFont(coloredRBMI.getFont().deriveFont(Font.BOLD)); coloredRBMI.setForeground(Color.green); coloredMenu.add(coloredRBMI); JCheckBoxMenuItem coloredCBMI = new JCheckBoxMenuItem("Big blue"); coloredCBMI.setFont(coloredCBMI.getFont().deriveFont(32f)); coloredCBMI.setForeground(Color.blue); coloredMenu.add(coloredCBMI); JMenu coloredM = new JMenu("Always big magenta"); coloredM.setForeground(Color.magenta); coloredM.setFont(coloredM.getFont().deriveFont(24f)); coloredMenu.add(coloredM); jmb.add(coloredMenu); JMenu testMenu = SampleMenuFactory.getTestMenu(); jmb.add(testMenu); JMenu jm4 = new JMenu("Disabled"); jm4.add(new JMenuItem("dummy4")); jm4.setMnemonic('4'); jmb.add(jm4); jm4.setEnabled(false); // LAF changing jmb.add(SampleMenuFactory.getLookAndFeelMenu(this)); setJMenuBar(jmb); TabCloseCallback closeCallbackMain = new TabCloseCallback() { @Override public TabCloseKind onAreaClick( JTabbedPane tabbedPane, int tabIndex, MouseEvent mouseEvent) { if (mouseEvent.getButton() != MouseEvent.BUTTON2) return TabCloseKind.NONE; if (mouseEvent.isShiftDown()) { return TabCloseKind.ALL; } return TabCloseKind.THIS; } @Override public TabCloseKind onCloseButtonClick( JTabbedPane tabbedPane, int tabIndex, MouseEvent mouseEvent) { if (mouseEvent.isAltDown()) { return TabCloseKind.ALL_BUT_THIS; } if (mouseEvent.isShiftDown()) { return TabCloseKind.ALL; } return TabCloseKind.THIS; } @Override public String getAreaTooltip(JTabbedPane tabbedPane, int tabIndex) { return null; } @Override public String getCloseButtonTooltip(JTabbedPane tabbedPane, int tabIndex) { StringBuffer result = new StringBuffer(); result.append("<html><body>"); result.append("Mouse click closes <b>" + tabbedPane.getTitleAt(tabIndex) + "</b> tab"); result.append( "<br><b>Alt</b>-Mouse click closes all tabs but <b>" + tabbedPane.getTitleAt(tabIndex) + "</b> tab"); result.append("<br><b>Shift</b>-Mouse click closes all tabs"); result.append("</body></html>"); return result.toString(); } }; jtp.putClientProperty(SubstanceLookAndFeel.TABBED_PANE_CLOSE_CALLBACK, closeCallbackMain); SubstanceLookAndFeel.registerTabCloseChangeListener( new TabCloseListener() { @Override public void tabClosed(JTabbedPane tabbedPane, Component tabComponent) { out("Closed tab"); } @Override public void tabClosing(JTabbedPane tabbedPane, Component tabComponent) { out("Closing tab"); } }); SubstanceLookAndFeel.registerTabCloseChangeListener( jtp, new VetoableTabCloseListener() { @Override public void tabClosed(JTabbedPane tabbedPane, Component tabComponent) { out("Closed tab - specific"); } @Override public void tabClosing(JTabbedPane tabbedPane, Component tabComponent) { out("Closing tab - specific"); } @Override public boolean vetoTabClosing(JTabbedPane tabbedPane, Component tabComponent) { int userCloseAnswer = JOptionPane.showConfirmDialog( Check.this, "Are you sure you want to close '" + tabbedPane.getTitleAt(tabbedPane.indexOfComponent(tabComponent)) + "' tab?", "Confirm dialog", JOptionPane.YES_NO_OPTION); return (userCloseAnswer == JOptionPane.NO_OPTION); } }); SubstanceLookAndFeel.registerTabCloseChangeListener( jtp, new VetoableMultipleTabCloseListener() { @Override public void tabsClosed(JTabbedPane tabbedPane, Set<Component> tabComponents) { out("Closed " + tabComponents.size() + " tabs - specific"); } @Override public void tabsClosing(JTabbedPane tabbedPane, Set<Component> tabComponents) { out("Closing " + tabComponents.size() + " tabs - specific"); } @Override public boolean vetoTabsClosing(JTabbedPane tabbedPane, Set<Component> tabComponents) { int userCloseAnswer = JOptionPane.showConfirmDialog( Check.this, "Are you sure you want to close " + tabComponents.size() + " tabs?", "Confirm dialog", JOptionPane.YES_NO_OPTION); return (userCloseAnswer == JOptionPane.NO_OPTION); } }); addComponentListener( new ComponentAdapter() { @Override public void componentResized(ComponentEvent e) { System.out.println("Size " + getSize()); } }); }
/** * Handles the <tt>ActionEvent</tt> generated when user presses one of the buttons in this panel. */ public void actionPerformed(ActionEvent evt) { JButton button = (JButton) evt.getSource(); String buttonName = button.getName(); if (buttonName.equals("call")) { Component selectedPanel = mainFrame.getSelectedTab(); // call button is pressed over an already open call panel if (selectedPanel != null && selectedPanel instanceof CallPanel && ((CallPanel) selectedPanel).getCall().getCallState() == CallState.CALL_INITIALIZATION) { NotificationManager.stopSound(NotificationManager.BUSY_CALL); NotificationManager.stopSound(NotificationManager.INCOMING_CALL); CallPanel callPanel = (CallPanel) selectedPanel; Iterator participantPanels = callPanel.getParticipantsPanels(); while (participantPanels.hasNext()) { CallParticipantPanel panel = (CallParticipantPanel) participantPanels.next(); panel.setState("Connecting"); } Call call = callPanel.getCall(); answerCall(call); } // call button is pressed over the call list else if (selectedPanel != null && selectedPanel instanceof CallListPanel && ((CallListPanel) selectedPanel).getCallList().getSelectedIndex() != -1) { CallListPanel callListPanel = (CallListPanel) selectedPanel; GuiCallParticipantRecord callRecord = (GuiCallParticipantRecord) callListPanel.getCallList().getSelectedValue(); String stringContact = callRecord.getParticipantName(); createCall(stringContact); } // call button is pressed over the contact list else if (selectedPanel != null && selectedPanel instanceof ContactListPanel) { // call button is pressed when a meta contact is selected if (isCallMetaContact) { Object[] selectedContacts = mainFrame.getContactListPanel().getContactList().getSelectedValues(); Vector telephonyContacts = new Vector(); for (int i = 0; i < selectedContacts.length; i++) { Object o = selectedContacts[i]; if (o instanceof MetaContact) { Contact contact = ((MetaContact) o).getDefaultContact(OperationSetBasicTelephony.class); if (contact != null) telephonyContacts.add(contact); else { new ErrorDialog( this.mainFrame, Messages.getI18NString("warning").getText(), Messages.getI18NString( "contactNotSupportingTelephony", new String[] {((MetaContact) o).getDisplayName()}) .getText()) .showDialog(); } } } if (telephonyContacts.size() > 0) createCall(telephonyContacts); } else if (!phoneNumberCombo.isComboFieldEmpty()) { // if no contact is selected checks if the user has chosen // or has // writen something in the phone combo box String stringContact = phoneNumberCombo.getEditor().getItem().toString(); createCall(stringContact); } } else if (selectedPanel != null && selectedPanel instanceof DialPanel) { String stringContact = phoneNumberCombo.getEditor().getItem().toString(); createCall(stringContact); } } else if (buttonName.equalsIgnoreCase("hangup")) { Component selectedPanel = this.mainFrame.getSelectedTab(); if (selectedPanel != null && selectedPanel instanceof CallPanel) { NotificationManager.stopSound(NotificationManager.BUSY_CALL); NotificationManager.stopSound(NotificationManager.INCOMING_CALL); NotificationManager.stopSound(NotificationManager.OUTGOING_CALL); CallPanel callPanel = (CallPanel) selectedPanel; Call call = callPanel.getCall(); if (removeCallTimers.containsKey(callPanel)) { ((Timer) removeCallTimers.get(callPanel)).stop(); removeCallTimers.remove(callPanel); } removeCallPanel(callPanel); if (call != null) { ProtocolProviderService pps = call.getProtocolProvider(); OperationSetBasicTelephony telephony = mainFrame.getTelephonyOpSet(pps); Iterator participants = call.getCallParticipants(); while (participants.hasNext()) { try { // now we hang up the first call participant in the // call telephony.hangupCallParticipant((CallParticipant) participants.next()); } catch (OperationFailedException e) { logger.error("Hang up was not successful: " + e); } } } } } else if (buttonName.equalsIgnoreCase("minimize")) { JCheckBoxMenuItem hideCallPanelItem = mainFrame.getMainMenu().getViewMenu().getHideCallPanelItem(); if (!hideCallPanelItem.isSelected()) hideCallPanelItem.setSelected(true); this.setCallPanelVisible(false); } else if (buttonName.equalsIgnoreCase("restore")) { JCheckBoxMenuItem hideCallPanelItem = mainFrame.getMainMenu().getViewMenu().getHideCallPanelItem(); if (hideCallPanelItem.isSelected()) hideCallPanelItem.setSelected(false); this.setCallPanelVisible(true); } }
/** * Show the saved results on the server. * * @param mysettings jemboss settings * @param frameName title name for frame */ public ShowSavedResults(final JembossParams mysettings, final JFrame f) { this("Saved results list" + (Jemboss.withSoap ? " on server" : "")); try { final ResultList reslist = new ResultList(mysettings); JMenu resFileMenu = new JMenu("File"); resMenu.add(resFileMenu); final JCheckBoxMenuItem listByProgram = new JCheckBoxMenuItem("List by program"); listByProgram.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { listByProgramName(); } }); resFileMenu.add(listByProgram); JCheckBoxMenuItem listByDate = new JCheckBoxMenuItem("List by date", true); listByDate.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { listByDateRun(reslist, false); } }); resFileMenu.add(listByDate); ButtonGroup group = new ButtonGroup(); group.add(listByProgram); group.add(listByDate); JButton refresh = new JButton(rfii); refresh.setMargin(new Insets(0, 1, 0, 1)); refresh.setToolTipText("Refresh"); resMenu.add(refresh); refresh.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { try { setCursor(cbusy); ResultList newlist = new ResultList(mysettings); setCursor(cdone); if (newlist.getStatus().equals("0")) { reslist.updateRes(newlist.hash()); datasets.removeAllElements(); StringTokenizer tok = new StringTokenizer((String) reslist.get("list"), "\n"); while (tok.hasMoreTokens()) datasets.addElement(convertToPretty(tok.nextToken())); if (listByProgram.isSelected()) listByProgramName(); else listByDateRun(reslist, false); } else { JOptionPane.showMessageDialog( null, newlist.getStatusMsg(), "Soap Error", JOptionPane.ERROR_MESSAGE); } } catch (JembossSoapException eae) { AuthPopup ap = new AuthPopup(mysettings, f); ap.setBottomPanel(); ap.setSize(380, 170); ap.pack(); ap.setVisible(true); } } }); resFileMenu.addSeparator(); JMenuItem resFileMenuExit = new JMenuItem("Close"); resFileMenuExit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E, ActionEvent.CTRL_MASK)); resFileMenuExit.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { dispose(); } }); resFileMenu.add(resFileMenuExit); setJMenuBar(resMenu); // this is the list of saved results listByDateRun(reslist, true); final JList st = new JList(datasets); st.setCellRenderer(new TabListCellRenderer()); st.addListSelectionListener( new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { if (e.getValueIsAdjusting()) return; JList theList = (JList) e.getSource(); if (theList.isSelectionEmpty()) { System.out.println("Empty selection"); } else { int index = theList.getSelectedIndex(); String thisdata = convertToOriginal(datasets.elementAt(index)); aboutRes.setText((String) reslist.get(thisdata)); aboutRes.setCaretPosition(0); } } }); st.addMouseListener( new MouseAdapter() { public void mouseClicked(MouseEvent e) { if (e.getClickCount() == 2) { try { setCursor(cbusy); String project = convertToOriginal(st.getSelectedValue()); ResultList thisres = new ResultList(mysettings, project, "show_saved_results"); new ShowResultSet(thisres.hash(), project, mysettings); setCursor(cdone); } catch (JembossSoapException eae) { AuthPopup ap = new AuthPopup(mysettings, f); ap.setBottomPanel(); ap.setSize(380, 170); ap.pack(); ap.setVisible(true); } } } }); sp.add(st); // display retrieves all files and shows them in a window JPanel resButtonPanel = new JPanel(); JButton showResButton = new JButton("Display"); showResButton.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { String sel = convertToOriginal(st.getSelectedValue()); if (sel != null) { try { setCursor(cbusy); ResultList thisres = new ResultList(mysettings, sel, "show_saved_results"); if (thisres.hash().size() == 0) JOptionPane.showMessageDialog( sp, "This application launch '" + sel + "' didn't produce any result files."); else new ShowResultSet(thisres.hash(), sel, mysettings); setCursor(cdone); } catch (JembossSoapException eae) { AuthPopup ap = new AuthPopup(mysettings, f); ap.setBottomPanel(); ap.setSize(380, 170); ap.pack(); ap.setVisible(true); } } else { statusField.setText("Nothing selected to be displayed."); } } }); // add a users note for that project JButton addNoteButton = new JButton("Edit Notes"); addNoteButton.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { String sel = convertToOriginal(st.getSelectedValue()); if (sel != null) { try { setCursor(cbusy); ResultList thisres = new ResultList(mysettings, sel, "Notes", "show_saved_results"); new ShowResultSet(thisres.hash(), sel, mysettings); setCursor(cdone); } catch (JembossSoapException eae) { AuthPopup ap = new AuthPopup(mysettings, f); ap.setBottomPanel(); ap.setSize(380, 170); ap.pack(); ap.setVisible(true); } } else { statusField.setText("Selected a project!"); } } }); // delete removes the file on the server & edits the list JButton delResButton = new JButton("Delete"); delResButton.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { Object sel[] = st.getSelectedValues(); if (sel != null) { String selList = new String(""); JTextPane delList = new JTextPane(); FontMetrics fm = delList.getFontMetrics(delList.getFont()); int maxWidth = 0; for (int i = 0; i < sel.length; i++) { if (i == sel.length - 1) selList = selList.concat((String) sel[i]); else selList = selList.concat(sel[i] + "\n"); int width = fm.stringWidth((String) sel[i]); if (width > maxWidth) maxWidth = width; } int ok = JOptionPane.OK_OPTION; if (sel.length > 1) { JScrollPane scrollDel = new JScrollPane(delList); delList.setText(selList); delList.setEditable(false); delList.setCaretPosition(0); Dimension d1 = delList.getPreferredSize(); int maxHeight = (int) d1.getHeight() + 5; if (maxHeight > 350) maxHeight = 350; else if (maxHeight < 50) maxHeight = 50; scrollDel.setPreferredSize(new Dimension(maxWidth + 30, maxHeight)); ok = JOptionPane.showConfirmDialog( null, scrollDel, "Confirm Deletion", JOptionPane.YES_NO_OPTION); } if (ok == JOptionPane.OK_OPTION) { try // ask the server to delete these results { setCursor(cbusy); selList = convertToOriginal(selList); new ResultList(mysettings, selList, "delete_saved_results"); setCursor(cdone); // amend the list for (int i = 0; i < sel.length; i++) datasets.removeElement(sel[i]); statusField.setText("Deleted " + sel.length + " result(s)"); aboutRes.setText(""); st.setSelectedIndex(-1); } catch (JembossSoapException eae) { AuthPopup ap = new AuthPopup(mysettings, f); ap.setBottomPanel(); ap.setSize(380, 170); ap.pack(); ap.setVisible(true); } } } else { statusField.setText("Nothing selected for deletion."); } } }); resButtonPanel.add(delResButton); resButtonPanel.add(addNoteButton); resButtonPanel.add(showResButton); resButtonStatus.add(resButtonPanel, BorderLayout.CENTER); resButtonStatus.add(statusField, BorderLayout.SOUTH); Container c = getContentPane(); c.add(ss, BorderLayout.WEST); c.add(aboutScroll, BorderLayout.CENTER); c.add(resButtonStatus, BorderLayout.SOUTH); pack(); setVisible(true); } catch (JembossSoapException eae) { AuthPopup ap = new AuthPopup(mysettings, f); ap.setBottomPanel(); ap.setSize(380, 170); ap.pack(); ap.setVisible(true); } }
// create a new profile: read the script and possibly execute the queries, // save the stats (if 'import' == true, we assume the profile already exists // and don't run the queries) public void createWkld(String name, String scriptFile, boolean runQueries) { System.gc(); Workload wkld = new Workload(name); if (showCmdsItem.getState()) { consoleFrame.echoCmd((!runQueries ? "importprof " : "newwkld ") + name + " " + scriptFile); } // construct the Workload object from the script; // first, check if the file exists try { FileReader reader = new FileReader(scriptFile); reader.close(); } catch (FileNotFoundException e) { System.out.println("couldn't open " + scriptFile); return; } catch (IOException e) { System.out.println("couldn't close " + scriptFile); } // now, check if it contains only queries int scriptId = 0; try { scriptId = Libgist.openScript(scriptFile); } catch (LibgistException e) { System.out.println("couldn't open (C) " + scriptFile); return; } char[] arg1 = new char[64 * 1024]; StringBuffer arg1Buf = new StringBuffer(); char[] arg2 = new char[64 * 1024]; StringBuffer arg2Buf = new StringBuffer(); // for (;;) { // int cmd = Libgist.getCommand(scriptId, arg1, arg2); // if (cmd == Libgist.EOF) break; // if (cmd != Libgist.FETCH) { // there should only be queries // System.out.println("Script file contains non-SELECT command"); // return; // } // } if (runQueries) { // turn profiling on and execute queries // Libgist.setProfilingEnabled(true); Libgist.disableBps(true); // we don't want to stop at breakpoints // rescan queries try { scriptId = Libgist.openScript(scriptFile); } catch (LibgistException e) { System.out.println("couldn't open (C) " + scriptFile); return; } int cnt = 1; // for (;;) { // int cmd = Libgist.getCommand(scriptId, arg1, arg2); // if (cmd == Libgist.EOF) break; // arg1Buf.setLength(0); // arg1Buf.append(arg1, 0, strlen(arg1)); // arg2Buf.setLength(0); // arg2Buf.append(arg2, 0, strlen(arg2)); // OpThread.execCmd(LibgistCommand.FETCH, arg1Buf.toString(), // arg2Buf.toString(), false); // System.out.print(cnt + " "); // System.out.println(cnt + ": execute " + arg2Buf.toString() + " " // + arg1Buf.toString()); // cnt++; // } System.out.println(); Libgist.disableBps(false); // compute optimal clustering and some more statistics // Libgist.computeMetrics(wkld.filename); } // save profile try { // we're saving Java and C++ data in separate files (filename and filename.prof) // the profile object only contains the filename, the queries will be // read in from the file when the profile is opened (faster that way) ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(wkld.filename)); out.writeObject(wkld); out.close(); System.out.println("copy query file"); Runtime.getRuntime().exec("cp " + scriptFile + " " + wkld.filename + ".queries"); System.out.println("saving tree and profile"); Libgist.saveToFile(wkld.filename + ".idx"); if (runQueries) { // Libgist.saveProfile(wkld.filename + ".prof"); } } catch (Exception e) { System.out.println("Error saving profile: " + e); return; } if (runQueries) { // turn profiling off (after the metrics were computed and // the profile saved) // Libgist.setProfilingEnabled(false); } }
public void echoCmd(LibgistCommand cmd) { if (!showCmdsItem.getState()) { return; } echoBuffer.setLength(0); // reset switch (cmd.cmdType) { case LibgistCommand.INSERT: echoBuffer.append("insert \"").append(cmd.key); echoBuffer.append("\" \"").append(cmd.data).append("\""); break; case LibgistCommand.REMOVE: echoBuffer.append("delete \"").append(cmd.qual); echoBuffer.append("\""); break; case LibgistCommand.FETCH: echoBuffer.append("select "); if (cmd.fetchLimit > 0) { echoBuffer.append(cmd.fetchLimit).append(" "); } echoBuffer.append("\"").append(cmd.qual).append("\""); break; case LibgistCommand.CREATE: echoBuffer.append("create ").append(cmd.indexName); echoBuffer.append(" ").append(cmd.extension); break; case LibgistCommand.OPEN: echoBuffer.append("open ").append(cmd.indexName); break; case LibgistCommand.CLOSE: echoBuffer.append("close"); break; case LibgistCommand.FLUSH: echoBuffer.append("flush"); break; case LibgistCommand.OPENANL: echoBuffer.append("openanl ").append(cmd.analysisFile.getPath()); break; case LibgistCommand.CLOSEANL: echoBuffer.append("closeanl"); break; case LibgistCommand.CREATEANL: echoBuffer.append("createanl"); break; case LibgistCommand.SCRIPT: echoBuffer.append("executing script..."); break; default: // something wrong here } consoleFrame.echoCmd(echoBuffer.toString()); }
/** Constructor to set everything up */ public TicTac() { // Set defaults before settings are changed via menus // (defaults are vs AI, play as X, with graphics on) multiPlayers = false; temp = false; currentPlayer = Symbol.X; ai = Symbol.O; difficulty = Difficulty.IMPOSSIBLE; frame = new JFrame("Tic Tac Toe"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); // Set preferred size so game fills window nicely this.setPreferredSize(new Dimension(cellSize * ROWS, cellSize * COLS)); frame.add(this); // Load images try { sword = ImageIO.read(new File("swordsBlue.png")); saber = ImageIO.read(new File("saber2.png")); skull = ImageIO.read(new File("skull.png")); ring = ImageIO.read(new File("ring.png")); smiley = ImageIO.read(new File("smiley.png")); hydra = ImageIO.read(new File("hydra.png")); finalfantasy = ImageIO.read(new File("finalfantasy.jpg")); dragon = ImageIO.read(new File("dargon.jpg")); night = ImageIO.read(new File("night.jpg")); } catch (IOException e) { System.out.println("Could not open image files, turning images off!"); useImages = false; } imageX = saber; imageO = ring; background = dragon; // Create menu bars. Each one item will need a listener menuBar = new JMenuBar(); JMenu menu = new JMenu("Mode"); JMenu menu2 = new JMenu("Side"); JMenu menu3 = new JMenu("Graphics"); JMenu menu4 = new JMenu("Other"); JMenu menu5 = new JMenu("Difficulty"); JMenu xImageMenu = new JMenu("Image for X"); JMenu oImageMenu = new JMenu("Image for O"); JMenu backgroundMenu = new JMenu("Set Background"); menuBar.add(menu); menuBar.add(menu2); menuBar.add(menu5); menuBar.add(menu3); menuBar.add(menu4); // Create checkbox menu items for choices final JCheckBoxMenuItem item = new JCheckBoxMenuItem("2 Player"); final JCheckBoxMenuItem item2 = new JCheckBoxMenuItem("VS Computer"); final JCheckBoxMenuItem item3 = new JCheckBoxMenuItem("Play as X"); final JCheckBoxMenuItem item4 = new JCheckBoxMenuItem("Play as O"); final JCheckBoxMenuItem item5 = new JCheckBoxMenuItem("On"); final JCheckBoxMenuItem item6 = new JCheckBoxMenuItem("Off"); JMenuItem item7 = new JMenuItem("Restart"); JMenuItem item8 = new JMenuItem("Exit"); final JCheckBoxMenuItem item9 = new JCheckBoxMenuItem("Easy"); final JCheckBoxMenuItem item10 = new JCheckBoxMenuItem("Hard"); final JCheckBoxMenuItem item11 = new JCheckBoxMenuItem("Impossible"); final JCheckBoxMenuItem itemSword = new JCheckBoxMenuItem("Sword"); final JCheckBoxMenuItem itemSaber = new JCheckBoxMenuItem("Sabers"); final JCheckBoxMenuItem itemSkull = new JCheckBoxMenuItem("Skull"); final JCheckBoxMenuItem itemRing = new JCheckBoxMenuItem("One Ring"); final JCheckBoxMenuItem itemSmiley = new JCheckBoxMenuItem("Red Smiley"); final JCheckBoxMenuItem itemHydra = new JCheckBoxMenuItem("Hydra"); final JCheckBoxMenuItem itemDragon = new JCheckBoxMenuItem("Dragon"); final JCheckBoxMenuItem itemFinalFantasy = new JCheckBoxMenuItem("Final Fantasy 7"); final JCheckBoxMenuItem itemNight = new JCheckBoxMenuItem("Nighttime"); // Set the initial checkboxes to true (for play vs ai, as X, with graphics on) item2.setSelected(true); item3.setSelected(true); item5.setSelected(true); item11.setSelected(true); itemSaber.setSelected(true); itemRing.setSelected(true); itemDragon.setSelected(true); // Play against friend item.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { item.setSelected(true); item2.setSelected(false); multiPlayers = true; repaint(); } }); menu.add(item); // Checkbox for Selecting to play against AI item2.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { item2.setSelected(true); item.setSelected(false); if (currentPlayer == Symbol.X) ai = Symbol.O; else ai = Symbol.X; item3.setSelected(true); item4.setSelected(false); multiPlayers = false; } }); menu.add(item2); // Play as X item3.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // use temp variable to move after assigning symbols if (item4.getState() && !multiPlayers) temp = true; item3.setSelected(true); item4.setSelected(false); currentPlayer = Symbol.X; ai = Symbol.O; if (temp) aiMove(); repaint(); temp = false; } }); menu2.add(item3); // Play as O item4.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { if (item3.getState() && !multiPlayers) temp = true; item4.setSelected(true); item3.setSelected(false); currentPlayer = Symbol.O; ai = Symbol.X; if (temp) aiMove(); repaint(); temp = false; } }); menu2.add(item4); // Turn Graphics on item5.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { item5.setSelected(true); item6.setSelected(false); useImages = true; repaint(); } }); menu3.add(item5); // Turn Graphics off item6.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { item5.setSelected(false); item6.setSelected(true); useImages = false; repaint(); } }); menu3.add(item6); menu3.addSeparator(); menu3.add(xImageMenu); menu3.add(oImageMenu); menu3.add(backgroundMenu); // Choose Saber for X itemSaber.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { itemSword.setSelected(false); itemSaber.setSelected(true); itemSkull.setSelected(false); imageX = saber; repaint(); } }); xImageMenu.add(itemSaber); // Choose Sword for X itemSword.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { itemSword.setSelected(true); itemSaber.setSelected(false); itemSkull.setSelected(false); imageX = sword; repaint(); } }); xImageMenu.add(itemSword); // Choose Skull for X itemSkull.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { itemSword.setSelected(false); itemSaber.setSelected(false); itemSkull.setSelected(true); imageX = skull; repaint(); } }); xImageMenu.add(itemSkull); // Choose ring for O itemRing.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { itemRing.setSelected(true); itemSmiley.setSelected(false); itemHydra.setSelected(false); imageO = ring; repaint(); } }); oImageMenu.add(itemRing); // Choose red smiley for O itemSmiley.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { itemRing.setSelected(false); itemSmiley.setSelected(true); itemHydra.setSelected(false); imageO = smiley; repaint(); } }); oImageMenu.add(itemSmiley); // Choose hydra for O itemHydra.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { itemRing.setSelected(false); itemSmiley.setSelected(false); itemHydra.setSelected(true); imageO = hydra; repaint(); } }); oImageMenu.add(itemHydra); // Set dragon as background itemDragon.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { itemDragon.setSelected(true); itemFinalFantasy.setSelected(false); itemNight.setSelected(false); background = dragon; repaint(); } }); backgroundMenu.add(itemDragon); // Set final fantasy 7 as background itemFinalFantasy.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { itemDragon.setSelected(false); itemFinalFantasy.setSelected(true); itemNight.setSelected(false); background = finalfantasy; repaint(); } }); backgroundMenu.add(itemFinalFantasy); // Set night as background itemNight.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { itemDragon.setSelected(false); itemFinalFantasy.setSelected(false); itemNight.setSelected(true); background = night; repaint(); } }); backgroundMenu.add(itemNight); // Reset game item7.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { initialize(); } }); menu4.add(item7); // Exit game item8.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.exit(0); } }); menu4.add(item8); // Difficulty easy item9.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { difficulty = Difficulty.EASY; item9.setSelected(true); item10.setSelected(false); item11.setSelected(false); } }); menu5.add(item9); // Difficulty hard item10.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { difficulty = Difficulty.HARD; item10.setSelected(true); item9.setSelected(false); item11.setSelected(false); } }); menu5.add(item10); // Difficulty impossible item11.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { difficulty = Difficulty.IMPOSSIBLE; item11.setSelected(true); item9.setSelected(false); item10.setSelected(false); } }); menu5.add(item11); // Add Whole menu bar to frame frame.setJMenuBar(menuBar); // Create statusBar (updates will take place in paintComponent) statusBar = new JLabel(" "); statusBar.setFont(new Font(Font.DIALOG_INPUT, Font.BOLD, 15)); statusBar.setBorder(BorderFactory.createEmptyBorder(2, 5, 4, 5)); // Use container variable to set layout and pack everything nicely Container cp = frame.getContentPane(); cp.setLayout(new BorderLayout()); cp.add(this, BorderLayout.CENTER); cp.add(statusBar, BorderLayout.SOUTH); frame.pack(); board = new Symbol[ROWS][COLS]; initialize(); // Add the mouse listener. Use MouseAdapter rather than implement it this.addMouseListener( new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { int currentCol = e.getX() / cellSize; int currentRow = e.getY() / cellSize; if (gameStatus == GameStatus.CONTINUE) { // If valid click, and spot is empty, make the move. Then check // to see if game is won. If not, and facing AI, ai moves. // Otherwise switch X and O if (currentRow >= 0 && currentRow < ROWS && currentCol >= 0 && currentCol < COLS && board[currentRow][currentCol] == Symbol.EMPTY) { board[currentRow][currentCol] = currentPlayer; checkState(currentPlayer); if (multiPlayers) currentPlayer = (currentPlayer == Symbol.X) ? Symbol.O : Symbol.X; if (gameStatus == GameStatus.CONTINUE && !multiPlayers) aiMove(); } } else { // Game is over, so re-initialize everything initialize(); } repaint(); } }); }
public void mouseClicked(MouseEvent e) { if (e.getSource() == userList && e.getClickCount() == 2) { int index = userList.locationToIndex(e.getPoint()); if (index > -1) { String userInfo = (String) ((DefaultListModel) userList.getModel()).get(index); link.running = false; userInfo = userInfo.substring(userInfo.indexOf("@") - 1); link = new LeetClient( userInfo.substring(userInfo.indexOf("@") + 1, userInfo.indexOf(":")), Integer.parseInt(userInfo.substring(userInfo.indexOf(":") + 1)), address, directory); link.setPasv(portItem.getState()); link.command = "LIST"; link.start(); } } if (e.getSource() == fileList && e.getClickCount() == 2) { int index = fileList.locationToIndex(e.getPoint()); if (index > -1) { String fileName = (String) ((DefaultListModel) fileList.getModel()).get(index); if (fileName.indexOf(" ") > -1) { fileName = fileName.substring(0, fileName.indexOf(" ")); } link.command = "RETR " + fileName; System.out.println(link.command); } } if (e.getSource() == connectButton) { if (connectButton.getText().equals("Disconnect")) { active.running = false; connectButton.setText("Connect"); } else { active = new LeetActive( serverTextField.getText(), Integer.parseInt(portTextField.getText()), SERVER_PORT); active.setUserName(nameTextField.getText()); active.start(); connectButton.setText("Disconnect"); } } if (e.getSource() == searchInit) { search = new SearchUsers(); search.start(); } if (e.getSource() == searchList && e.getClickCount() == 2) { int index = searchList.locationToIndex(e.getPoint()); if (index > -1) { String fileInfo = (String) ((DefaultListModel) searchList.getModel()).get(index); link.running = false; String userInfo = fileInfo.substring(fileInfo.indexOf("@") + 1); userInfo = userInfo.substring(userInfo.indexOf("@") - 1); fileInfo = fileInfo.substring(0, fileInfo.indexOf("@")); link = new LeetClient( userInfo.substring(userInfo.indexOf("@") + 1, userInfo.indexOf(":")), Integer.parseInt(userInfo.substring(userInfo.indexOf(":") + 1)), address, directory); link.setPasv(portItem.getState()); link.command = "RETR " + fileInfo; link.start(); } } }
/** * Set up the menu bar. * * @return The JMenuBar we set up. */ private JMenuBar setupMenuBar() { JMenuBar menuBar = new JMenuBar(); /* File */ JMenu fileMenu = new JMenu("File"); menuBar.add(fileMenu); /* File -> Open CSV */ JMenuItem miFileOpenCSV = new JMenuItem( new AbstractAction("Open CSV") { @Override public void actionPerformed(ActionEvent e) { FileDialog fd = new FileDialog(mainFrame, "Open Darwin CSV file ...", FileDialog.LOAD); fd.setVisible(true); File file; if (fd.getDirectory() != null) { file = new File(fd.getDirectory(), fd.getFile()); } else if (fd.getFile() != null) { file = new File(fd.getFile()); } else { return; } // Clear out old file. loadFile(null); // SwingWorker MAGIC! new MainFrameWorker("loading file '" + file + "'", file) { @Override protected Object doInBackground() throws Exception { System.err.println("Loading file: " + input); loadFile((File) input, DarwinCSV.FILE_CSV_DELIMITED); return null; } }.execute(); } }); fileMenu.add(miFileOpenCSV); /* File -> Open CSV without UI */ JMenuItem miFileOpenCSVnoUI = new JMenuItem( new AbstractAction("Open CSV without UI") { @Override public void actionPerformed(ActionEvent e) { FileDialog fd = new FileDialog(mainFrame, "Open Darwin CSV file ...", FileDialog.LOAD); fd.setVisible(true); File file; if (fd.getDirectory() != null) { file = new File(fd.getDirectory(), fd.getFile()); } else if (fd.getFile() != null) { file = new File(fd.getFile()); } else { return; } // Clear out old file loadFile(null); loadFile(file, DarwinCSV.FILE_CSV_DELIMITED); } }); fileMenu.add(miFileOpenCSVnoUI); /* File -> Open tab-delimited */ JMenuItem miFileOpenTab = new JMenuItem( new AbstractAction("Open tab-delimited") { @Override public void actionPerformed(ActionEvent e) { FileDialog fd = new FileDialog( mainFrame, "Open Darwin tab-delimited file ...", FileDialog.LOAD); fd.setVisible(true); File file; if (fd.getDirectory() != null) { file = new File(fd.getDirectory(), fd.getFile()); } else if (fd.getFile() != null) { file = new File(fd.getFile()); } else { return; } // Clear out old file loadFile(null); // SwingWorker MAGIC! new MainFrameWorker("loading file '" + file + "'", file) { @Override protected Object doInBackground() throws Exception { loadFile((File) input, DarwinCSV.FILE_TAB_DELIMITED); return null; } }.execute(); } }); fileMenu.add(miFileOpenTab); /* File -> Save CSV */ JMenuItem miFileSave = new JMenuItem( new AbstractAction("Save as CSV") { @Override public void actionPerformed(ActionEvent e) { FileDialog fd = new FileDialog(mainFrame, "Save Darwin CSV file ...", FileDialog.SAVE); fd.setVisible(true); File file; if (fd.getDirectory() != null) { file = new File(fd.getDirectory(), fd.getFile()); } else if (fd.getFile() != null) { file = new File(fd.getFile()); } else { return; } // SwingWorker MAGIC! new MainFrameWorker("saving CSV file '" + file + "'", file) { @Override protected Object doInBackground() throws Exception { currentCSV.saveToFile((File) input, DarwinCSV.FILE_CSV_DELIMITED); return null; } }.execute(); } }); fileMenu.add(miFileSave); /* File -> Exit */ JMenuItem miFileExit = new JMenuItem( new AbstractAction("Exit") { @Override public void actionPerformed(ActionEvent e) { mainFrame.setVisible(false); mainFrame.dispose(); } }); fileMenu.add(miFileExit); /* Match */ JMenu matchMenu = new JMenu("Match"); menuBar.add(matchMenu); /* Match -> Against CSV */ JMenuItem miMatchCSV = new JMenuItem( new AbstractAction("Match against CSV") { @Override public void actionPerformed(ActionEvent e) { FileDialog fd = new FileDialog( mainFrame, "Open Darwin CSV file for matching ...", FileDialog.LOAD); fd.setVisible(true); if (fd.getFile() == null) return; File file = new File(fd.getFile()); if (fd.getDirectory() != null) { file = new File(fd.getDirectory(), fd.getFile()); } // Clear out old match against. matchAgainst(null); // SwingWorker MAGIC! new MainFrameWorker("matching against file '" + file + "'", file) { @Override protected Object doInBackground() throws Exception { matchAgainst(new DarwinCSV((File) input, DarwinCSV.FILE_CSV_DELIMITED)); return null; } }.execute(); } }); matchMenu.add(miMatchCSV); /* Match -> Against ITIS */ JMenuItem miMatchITIS = new JMenuItem( new AbstractAction("Match against ITIS") { @Override public void actionPerformed(ActionEvent e) { DarwinCSV csv = DownloadITIS.getIt(mainFrame); matchAgainst(csv); table.repaint(); } }); matchMenu.add(miMatchITIS); /* TaxonID */ JMenu taxonIDMenu = new JMenu("TaxonIDs"); menuBar.add(taxonIDMenu); /* TaxonID -> Treat TaxonIDs as ... */ JMenu treatTaxonIDsAs = new JMenu("Treat TaxonIDs as ..."); taxonIDMenu.add(treatTaxonIDsAs); /* TaxonID -> Treat -> ITIS TSNs */ JCheckBoxMenuItem miITIS_TSNs = new JCheckBoxMenuItem( new AbstractAction("ITIS TSNs") { @Override public void actionPerformed(ActionEvent e) { // Don't let the user unselect this. ((JCheckBoxMenuItem) e.getSource()).setSelected(true); } }); miITIS_TSNs.setSelected(true); treatTaxonIDsAs.add(miITIS_TSNs); /* TaxonID -> Create family column */ JMenuItem miTaxonID_createFamily = new JMenuItem( new AbstractAction("Create family column") { @Override public void actionPerformed(ActionEvent e) { /* if(currentCSV == null) return; if(currentMatch == null) return; int col = getJTable().getSelectedColumn(); if(col == -1) return; RowIndex rowIndex = currentCSV.getRowIndex(); String colName = rowIndex.getColumnName(col); if(rowIndex.hasColumn(colName + "_family")) { // TODO MessageBox return; } if(Name.class.isAssignableFrom(currentCSV.getRowIndex().getColumnClass(col))) { // A name class! Make a new column! currentCSV.getRowIndex().setColumnClass(colName + "_family", String.class); currentCSV.getRowIndex().createNewColumn(colName + "_family", col + 1, colName, new MapOperation() { @Override public Object mapTo(Object value) { return "family"; } }); // Repaint the table. getJTable().repaint(); } */ } }); taxonIDMenu.add(miTaxonID_createFamily); /* Help */ JMenu helpMenu = new JMenu("Help"); menuBar.add(helpMenu); /* Help -> Memory information */ JMenuItem miHelpMemory = new JMenuItem( new AbstractAction("Memory information") { @Override public void actionPerformed(ActionEvent e) { System.gc(); MessageBox.messageBox( mainFrame, "Memory information", "Maximum memory: " + Runtime.getRuntime().maxMemory() / (1024 * 1024) + " MB\n" + "Total memory: " + Runtime.getRuntime().totalMemory() / (1024 * 1024) + " MB\n" + "Used memory: " + (Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory()) / (1024 * 1024) + " MB\n" + "Free memory: " + Runtime.getRuntime().freeMemory() / (1024 * 1024) + " MB\n" + "Available memory: " + (Runtime.getRuntime().maxMemory() - Runtime.getRuntime().totalMemory() + Runtime.getRuntime().freeMemory()) / (1024 * 1024) + " MB"); } }); helpMenu.add(miHelpMemory); return menuBar; }