List of usage examples for javax.swing JButton setAlignmentX
@BeanProperty(description = "The preferred horizontal alignment of the component.") public void setAlignmentX(float alignmentX)
From source file:InternalFrameEventDemo.java
protected void createDisplayWindow() { JButton b1 = new JButton("Show internal frame"); b1.setActionCommand(SHOW);// w ww . j av a 2 s. c om b1.addActionListener(this); JButton b2 = new JButton("Clear event info"); b2.setActionCommand(CLEAR); b2.addActionListener(this); display = new JTextArea(3, 30); display.setEditable(false); JScrollPane textScroller = new JScrollPane(display); //Have to supply a preferred size, or else the scroll //area will try to stay as large as the text area. textScroller.setPreferredSize(new Dimension(200, 75)); textScroller.setMinimumSize(new Dimension(10, 10)); displayWindow = new JInternalFrame("Event Watcher", true, //resizable false, //not closable false, //not maximizable true); //iconifiable JPanel contentPane = new JPanel(); contentPane.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); contentPane.setLayout(new BoxLayout(contentPane, BoxLayout.PAGE_AXIS)); b1.setAlignmentX(CENTER_ALIGNMENT); contentPane.add(b1); contentPane.add(Box.createRigidArea(new Dimension(0, 5))); contentPane.add(textScroller); contentPane.add(Box.createRigidArea(new Dimension(0, 5))); b2.setAlignmentX(CENTER_ALIGNMENT); contentPane.add(b2); displayWindow.setContentPane(contentPane); displayWindow.pack(); displayWindow.setVisible(true); }
From source file:net.sf.vfsjfilechooser.plaf.metal.MetalVFSFileChooserUI.java
@SuppressWarnings("serial") @Override/*from www . j a va 2s .c om*/ public void installComponents(VFSJFileChooser fc) { AbstractVFSFileSystemView fsv = fc.getFileSystemView(); fc.setBorder(new EmptyBorder(12, 12, 11, 11)); fc.setLayout(new BorderLayout(0, 11)); filePane = new VFSFilePane(new MetalVFSFileChooserUIAccessor()); fc.addPropertyChangeListener(filePane); updateUseShellFolder(); // ********************************* // // **** Construct the top panel **** // // ********************************* // // Directory manipulation buttons JPanel topPanel = new JPanel(new BorderLayout(11, 0)); topButtonPanel = new JPanel(); topButtonPanel.setLayout(new BoxLayout(topButtonPanel, BoxLayout.LINE_AXIS)); topPanel.add(topButtonPanel, BorderLayout.AFTER_LINE_ENDS); // Add the top panel to the fileChooser fc.add(topPanel, BorderLayout.NORTH); // ComboBox Label lookInLabel = new JLabel(lookInLabelText); topPanel.add(lookInLabel, BorderLayout.BEFORE_LINE_BEGINS); // CurrentDir ComboBox directoryComboBox = new JComboBox() { @Override public Dimension getPreferredSize() { Dimension d = super.getPreferredSize(); // Must be small enough to not affect total width. d.width = 150; return d; } }; directoryComboBox.putClientProperty(AccessibleContext.ACCESSIBLE_DESCRIPTION_PROPERTY, lookInLabelText); directoryComboBox.putClientProperty("JComboBox.isTableCellEditor", Boolean.TRUE); lookInLabel.setLabelFor(directoryComboBox); directoryComboBoxModel = createDirectoryComboBoxModel(fc); directoryComboBox.setModel(directoryComboBoxModel); directoryComboBox.addActionListener(directoryComboBoxAction); directoryComboBox.setRenderer(createDirectoryComboBoxRenderer(fc)); directoryComboBox.setAlignmentX(JComponent.LEFT_ALIGNMENT); directoryComboBox.setAlignmentY(JComponent.TOP_ALIGNMENT); directoryComboBox.setMaximumRowCount(8); topPanel.add(directoryComboBox, BorderLayout.CENTER); // Up Button upFolderButton = new JButton(getChangeToParentDirectoryAction()); upFolderButton.setText(null); upFolderButton.setIcon(upFolderIcon); upFolderButton.setToolTipText(upFolderToolTipText); upFolderButton.putClientProperty(AccessibleContext.ACCESSIBLE_NAME_PROPERTY, upFolderAccessibleName); upFolderButton.setAlignmentX(JComponent.LEFT_ALIGNMENT); upFolderButton.setAlignmentY(JComponent.CENTER_ALIGNMENT); upFolderButton.setMargin(shrinkwrap); topButtonPanel.add(upFolderButton); topButtonPanel.add(Box.createRigidArea(hstrut5)); // Home Button FileObject homeDir = fsv.getHomeDirectory(); String toolTipText = homeFolderToolTipText; if (fsv.isRoot(homeDir)) { toolTipText = getFileView(fc).getName(homeDir); // Probably "Desktop". } JButton b = new JButton(homeFolderIcon); b.setToolTipText(toolTipText); b.putClientProperty(AccessibleContext.ACCESSIBLE_NAME_PROPERTY, homeFolderAccessibleName); b.setAlignmentX(JComponent.LEFT_ALIGNMENT); b.setAlignmentY(JComponent.CENTER_ALIGNMENT); b.setMargin(shrinkwrap); b.addActionListener(getGoHomeAction()); topButtonPanel.add(b); topButtonPanel.add(Box.createRigidArea(hstrut5)); // New Directory Button if (!UIManager.getBoolean("FileChooser.readOnly")) { b = new JButton(filePane.getNewFolderAction()); b.setText(null); b.setIcon(newFolderIcon); b.setToolTipText(newFolderToolTipText); b.putClientProperty(AccessibleContext.ACCESSIBLE_NAME_PROPERTY, newFolderAccessibleName); b.setAlignmentX(JComponent.LEFT_ALIGNMENT); b.setAlignmentY(JComponent.CENTER_ALIGNMENT); b.setMargin(shrinkwrap); } topButtonPanel.add(b); topButtonPanel.add(Box.createRigidArea(hstrut5)); // View button group ButtonGroup viewButtonGroup = new ButtonGroup(); // List Button listViewButton = new JToggleButton(listViewIcon); listViewButton.setToolTipText(listViewButtonToolTipText); listViewButton.putClientProperty(AccessibleContext.ACCESSIBLE_NAME_PROPERTY, listViewButtonAccessibleName); listViewButton.setSelected(true); listViewButton.setAlignmentX(JComponent.LEFT_ALIGNMENT); listViewButton.setAlignmentY(JComponent.CENTER_ALIGNMENT); listViewButton.setMargin(shrinkwrap); listViewButton.addActionListener(filePane.getViewTypeAction(VFSFilePane.VIEWTYPE_LIST)); topButtonPanel.add(listViewButton); viewButtonGroup.add(listViewButton); // Details Button detailsViewButton = new JToggleButton(detailsViewIcon); detailsViewButton.setToolTipText(detailsViewButtonToolTipText); detailsViewButton.putClientProperty(AccessibleContext.ACCESSIBLE_NAME_PROPERTY, detailsViewButtonAccessibleName); detailsViewButton.setAlignmentX(JComponent.LEFT_ALIGNMENT); detailsViewButton.setAlignmentY(JComponent.CENTER_ALIGNMENT); detailsViewButton.setMargin(shrinkwrap); detailsViewButton.addActionListener(filePane.getViewTypeAction(VFSFilePane.VIEWTYPE_DETAILS)); topButtonPanel.add(detailsViewButton); viewButtonGroup.add(detailsViewButton); filePane.addPropertyChangeListener(new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent e) { if ("viewType".equals(e.getPropertyName())) { final int viewType = filePane.getViewType(); if (viewType == VFSFilePane.VIEWTYPE_LIST) { listViewButton.setSelected(true); } else if (viewType == VFSFilePane.VIEWTYPE_DETAILS) { detailsViewButton.setSelected(true); } } } }); // ************************************** // // ******* Add the directory pane ******* // // ************************************** // fc.add(getAccessoryPanel(), BorderLayout.AFTER_LINE_ENDS); JComponent accessory = fc.getAccessory(); if (accessory != null) { getAccessoryPanel().add(accessory); } filePane.setPreferredSize(LIST_PREF_SIZE); fc.add(filePane, BorderLayout.CENTER); // ********************************** // // **** Construct the bottom panel ** // // ********************************** // bottomPanel = getBottomPanel(); bottomPanel.setLayout(new BoxLayout(bottomPanel, BoxLayout.Y_AXIS)); fc.add(bottomPanel, BorderLayout.SOUTH); // FileName label and textfield JPanel fileNamePanel = new JPanel(); fileNamePanel.setLayout(new BoxLayout(fileNamePanel, BoxLayout.LINE_AXIS)); bottomPanel.add(fileNamePanel); bottomPanel.add(Box.createRigidArea(vstrut5)); fileNameLabel = new AlignedLabel(); populateFileNameLabel(); fileNamePanel.add(fileNameLabel); fileNameTextField = new JTextField(35) { @Override public Dimension getMaximumSize() { return new Dimension(Short.MAX_VALUE, super.getPreferredSize().height); } }; PopupHandler.installDefaultMouseListener(fileNameTextField); fileNamePanel.add(fileNameTextField); fileNameLabel.setLabelFor(fileNameTextField); fileNameTextField.addFocusListener(new FocusAdapter() { @Override public void focusGained(FocusEvent e) { if (!getFileChooser().isMultiSelectionEnabled()) { filePane.clearSelection(); } } }); if (fc.isMultiSelectionEnabled()) { setFileName(fileNameString(fc.getSelectedFiles())); } else { setFileName(fileNameString(fc.getSelectedFile())); } // Filetype label and combobox JPanel filesOfTypePanel = new JPanel(); filesOfTypePanel.setLayout(new BoxLayout(filesOfTypePanel, BoxLayout.LINE_AXIS)); bottomPanel.add(filesOfTypePanel); AlignedLabel filesOfTypeLabel = new AlignedLabel(filesOfTypeLabelText); filesOfTypePanel.add(filesOfTypeLabel); filterComboBoxModel = createFilterComboBoxModel(); fc.addPropertyChangeListener(filterComboBoxModel); filterComboBox = new JComboBox(filterComboBoxModel); filterComboBox.putClientProperty(AccessibleContext.ACCESSIBLE_DESCRIPTION_PROPERTY, filesOfTypeLabelText); filesOfTypeLabel.setLabelFor(filterComboBox); filterComboBox.setRenderer(createFilterComboBoxRenderer()); filesOfTypePanel.add(filterComboBox); // buttons getButtonPanel().setLayout(new ButtonAreaLayout()); approveButton = new JButton(getApproveButtonText(fc)); // Note: Metal does not use mnemonics for approve and cancel approveButton.addActionListener(getApproveSelectionAction()); fileNameTextField.addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_ENTER) { getApproveSelectionAction().actionPerformed(null); } } }); approveButton.setToolTipText(getApproveButtonToolTipText(fc)); getButtonPanel().add(approveButton); cancelButton = new JButton(cancelButtonText); cancelButton.setToolTipText(cancelButtonToolTipText); cancelButton.addActionListener(getCancelSelectionAction()); getButtonPanel().add(cancelButton); if (fc.getControlButtonsAreShown()) { addControlButtons(); } groupLabels(new AlignedLabel[] { fileNameLabel, filesOfTypeLabel }); }
From source file:com.googlecode.vfsjfilechooser2.plaf.metal.MetalVFSFileChooserUI.java
@SuppressWarnings("serial") @Override/*w w w . ja va 2 s . c om*/ public void installComponents(VFSJFileChooser fc) { AbstractVFSFileSystemView fsv = fc.getFileSystemView(); fc.setBorder(new EmptyBorder(12, 12, 11, 11)); fc.setLayout(new BorderLayout(0, 11)); filePane = new VFSFilePane(new MetalVFSFileChooserUIAccessor()); fc.addPropertyChangeListener(filePane); updateUseShellFolder(); // ********************************* // // **** Construct the top panel **** // // ********************************* // // Directory manipulation buttons JPanel topPanel = new JPanel(new BorderLayout(11, 0)); topButtonPanel = new JPanel(); topButtonPanel.setLayout(new BoxLayout(topButtonPanel, BoxLayout.LINE_AXIS)); topPanel.add(topButtonPanel, BorderLayout.AFTER_LINE_ENDS); // Add the top panel to the fileChooser fc.add(topPanel, BorderLayout.NORTH); // ComboBox Label lookInLabel = new JLabel(lookInLabelText); topPanel.add(lookInLabel, BorderLayout.BEFORE_LINE_BEGINS); // CurrentDir ComboBox directoryComboBox = new JComboBox() { @Override public Dimension getPreferredSize() { Dimension d = super.getPreferredSize(); // Must be small enough to not affect total width. d.width = 150; return d; } }; directoryComboBox.putClientProperty(AccessibleContext.ACCESSIBLE_DESCRIPTION_PROPERTY, lookInLabelText); directoryComboBox.putClientProperty("JComboBox.isTableCellEditor", Boolean.TRUE); lookInLabel.setLabelFor(directoryComboBox); directoryComboBoxModel = createDirectoryComboBoxModel(fc); directoryComboBox.setModel(directoryComboBoxModel); directoryComboBox.addActionListener(directoryComboBoxAction); directoryComboBox.setRenderer(createDirectoryComboBoxRenderer(fc)); directoryComboBox.setAlignmentX(JComponent.LEFT_ALIGNMENT); directoryComboBox.setAlignmentY(JComponent.TOP_ALIGNMENT); directoryComboBox.setMaximumRowCount(8); topPanel.add(directoryComboBox, BorderLayout.CENTER); // Up Button upFolderButton = new JButton(getChangeToParentDirectoryAction()); upFolderButton.setText(null); upFolderButton.setIcon(upFolderIcon); upFolderButton.setToolTipText(upFolderToolTipText); upFolderButton.putClientProperty(AccessibleContext.ACCESSIBLE_NAME_PROPERTY, upFolderAccessibleName); upFolderButton.setAlignmentX(JComponent.LEFT_ALIGNMENT); upFolderButton.setAlignmentY(JComponent.CENTER_ALIGNMENT); upFolderButton.setMargin(shrinkwrap); topButtonPanel.add(upFolderButton); topButtonPanel.add(Box.createRigidArea(hstrut5)); // Home Button FileObject homeDir = fsv.getHomeDirectory(); String toolTipText = homeFolderToolTipText; if (fsv.isRoot(homeDir)) { toolTipText = getFileView(fc).getName(homeDir); // Probably "Desktop". } JButton b = new JButton(homeFolderIcon); b.setToolTipText(toolTipText); b.putClientProperty(AccessibleContext.ACCESSIBLE_NAME_PROPERTY, homeFolderAccessibleName); b.setAlignmentX(JComponent.LEFT_ALIGNMENT); b.setAlignmentY(JComponent.CENTER_ALIGNMENT); b.setMargin(shrinkwrap); b.addActionListener(getGoHomeAction()); topButtonPanel.add(b); topButtonPanel.add(Box.createRigidArea(hstrut5)); // New Directory Button if (!UIManager.getBoolean("FileChooser.readOnly")) { b = new JButton(filePane.getNewFolderAction()); b.setText(null); b.setIcon(newFolderIcon); b.setToolTipText(newFolderToolTipText); b.putClientProperty(AccessibleContext.ACCESSIBLE_NAME_PROPERTY, newFolderAccessibleName); b.setAlignmentX(JComponent.LEFT_ALIGNMENT); b.setAlignmentY(JComponent.CENTER_ALIGNMENT); b.setMargin(shrinkwrap); } topButtonPanel.add(b); topButtonPanel.add(Box.createRigidArea(hstrut5)); // View button group ButtonGroup viewButtonGroup = new ButtonGroup(); // List Button listViewButton = new JToggleButton(listViewIcon); listViewButton.setToolTipText(listViewButtonToolTipText); listViewButton.putClientProperty(AccessibleContext.ACCESSIBLE_NAME_PROPERTY, listViewButtonAccessibleName); listViewButton.setSelected(true); listViewButton.setAlignmentX(JComponent.LEFT_ALIGNMENT); listViewButton.setAlignmentY(JComponent.CENTER_ALIGNMENT); listViewButton.setMargin(shrinkwrap); listViewButton.addActionListener(filePane.getViewTypeAction(VFSFilePane.VIEWTYPE_LIST)); topButtonPanel.add(listViewButton); viewButtonGroup.add(listViewButton); // Details Button detailsViewButton = new JToggleButton(detailsViewIcon); detailsViewButton.setToolTipText(detailsViewButtonToolTipText); detailsViewButton.putClientProperty(AccessibleContext.ACCESSIBLE_NAME_PROPERTY, detailsViewButtonAccessibleName); detailsViewButton.setAlignmentX(JComponent.LEFT_ALIGNMENT); detailsViewButton.setAlignmentY(JComponent.CENTER_ALIGNMENT); detailsViewButton.setMargin(shrinkwrap); detailsViewButton.addActionListener(filePane.getViewTypeAction(VFSFilePane.VIEWTYPE_DETAILS)); topButtonPanel.add(detailsViewButton); viewButtonGroup.add(detailsViewButton); filePane.addPropertyChangeListener(new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent e) { if ("viewType".equals(e.getPropertyName())) { final int viewType = filePane.getViewType(); if (viewType == VFSFilePane.VIEWTYPE_LIST) { listViewButton.setSelected(true); } else if (viewType == VFSFilePane.VIEWTYPE_DETAILS) { detailsViewButton.setSelected(true); } } } }); // ************************************** // // ******* Add the directory pane ******* // // ************************************** // fc.add(getAccessoryPanel(), BorderLayout.AFTER_LINE_ENDS); JComponent accessory = fc.getAccessory(); if (accessory != null) { getAccessoryPanel().add(accessory); } filePane.setPreferredSize(LIST_PREF_SIZE); fc.add(filePane, BorderLayout.CENTER); // ********************************** // // **** Construct the bottom panel ** // // ********************************** // bottomPanel = getBottomPanel(); bottomPanel.setLayout(new BoxLayout(bottomPanel, BoxLayout.Y_AXIS)); fc.add(bottomPanel, BorderLayout.SOUTH); // FileName label and textfield JPanel fileNamePanel = new JPanel(); fileNamePanel.setLayout(new BoxLayout(fileNamePanel, BoxLayout.LINE_AXIS)); bottomPanel.add(fileNamePanel); bottomPanel.add(Box.createRigidArea(vstrut5)); fileNameLabel = new AlignedLabel(); populateFileNameLabel(); fileNamePanel.add(fileNameLabel); fileNameTextField = new JTextField(35) { @Override public Dimension getMaximumSize() { return new Dimension(Short.MAX_VALUE, super.getPreferredSize().height); } }; PopupHandler.installDefaultMouseListener(fileNameTextField); fileNamePanel.add(fileNameTextField); fileNameLabel.setLabelFor(fileNameTextField); fileNameTextField.addFocusListener(new FocusAdapter() { @Override public void focusGained(FocusEvent e) { if (!getFileChooser().isMultiSelectionEnabled()) { filePane.clearSelection(); } } }); if (fc.isMultiSelectionEnabled()) { setFileName(fileNameString(fc.getSelectedFileObjects())); } else { setFileName(fileNameString(fc.getSelectedFileObject())); } // Filetype label and combobox JPanel filesOfTypePanel = new JPanel(); filesOfTypePanel.setLayout(new BoxLayout(filesOfTypePanel, BoxLayout.LINE_AXIS)); bottomPanel.add(filesOfTypePanel); AlignedLabel filesOfTypeLabel = new AlignedLabel(filesOfTypeLabelText); filesOfTypePanel.add(filesOfTypeLabel); filterComboBoxModel = createFilterComboBoxModel(); fc.addPropertyChangeListener(filterComboBoxModel); filterComboBox = new JComboBox(filterComboBoxModel); filterComboBox.putClientProperty(AccessibleContext.ACCESSIBLE_DESCRIPTION_PROPERTY, filesOfTypeLabelText); filesOfTypeLabel.setLabelFor(filterComboBox); filterComboBox.setRenderer(createFilterComboBoxRenderer()); filesOfTypePanel.add(filterComboBox); // buttons getButtonPanel().setLayout(new ButtonAreaLayout()); approveButton = new JButton(getApproveButtonText(fc)); // Note: Metal does not use mnemonics for approve and cancel approveButton.addActionListener(getApproveSelectionAction()); fileNameTextField.addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_ENTER) { getApproveSelectionAction().actionPerformed(null); } else if (e.getKeyCode() == KeyEvent.VK_ESCAPE) { getFileChooser().cancelSelection(); } } }); approveButton.setToolTipText(getApproveButtonToolTipText(fc)); getButtonPanel().add(approveButton); cancelButton = new JButton(cancelButtonText); cancelButton.setToolTipText(cancelButtonToolTipText); cancelButton.addActionListener(getCancelSelectionAction()); getButtonPanel().add(cancelButton); if (fc.getControlButtonsAreShown()) { addControlButtons(); } groupLabels(new AlignedLabel[] { fileNameLabel, filesOfTypeLabel }); }
From source file:com.google.code.facebook.graph.sna.applet.PluggableRendererDemo.java
/** * @param jp panel to which controls will be added *///from ww w . j ava 2s .c o m @SuppressWarnings("serial") protected void addBottomControls(final JPanel jp) { final JPanel control_panel = new JPanel(); jp.add(control_panel, BorderLayout.EAST); control_panel.setLayout(new BorderLayout()); final Box vertex_panel = Box.createVerticalBox(); vertex_panel.setBorder(BorderFactory.createTitledBorder("Vertices")); final Box edge_panel = Box.createVerticalBox(); edge_panel.setBorder(BorderFactory.createTitledBorder("Edges")); final Box both_panel = Box.createVerticalBox(); control_panel.add(vertex_panel, BorderLayout.NORTH); control_panel.add(edge_panel, BorderLayout.SOUTH); control_panel.add(both_panel, BorderLayout.CENTER); // set up vertex controls v_color = new JCheckBox("seed highlight"); v_color.addActionListener(this); v_stroke = new JCheckBox("stroke highlight on selection"); v_stroke.addActionListener(this); v_labels = new JCheckBox("show voltage values"); v_labels.addActionListener(this); v_shape = new JCheckBox("shape by degree"); v_shape.addActionListener(this); v_size = new JCheckBox("size by voltage"); v_size.addActionListener(this); v_size.setSelected(true); v_aspect = new JCheckBox("stretch by degree ratio"); v_aspect.addActionListener(this); v_small = new JCheckBox("filter when degree < " + VertexDisplayPredicate.MIN_DEGREE); v_small.addActionListener(this); vertex_panel.add(v_color); vertex_panel.add(v_stroke); vertex_panel.add(v_labels); vertex_panel.add(v_shape); vertex_panel.add(v_size); vertex_panel.add(v_aspect); vertex_panel.add(v_small); // set up edge controls JPanel gradient_panel = new JPanel(new GridLayout(1, 0)); gradient_panel.setBorder(BorderFactory.createTitledBorder("Edge paint")); no_gradient = new JRadioButton("Solid color"); no_gradient.addActionListener(this); no_gradient.setSelected(true); // gradient_absolute = new JRadioButton("Absolute gradient"); // gradient_absolute.addActionListener(this); gradient_relative = new JRadioButton("Gradient"); gradient_relative.addActionListener(this); ButtonGroup bg_grad = new ButtonGroup(); bg_grad.add(no_gradient); bg_grad.add(gradient_relative); //bg_grad.add(gradient_absolute); gradient_panel.add(no_gradient); //gradientGrid.add(gradient_absolute); gradient_panel.add(gradient_relative); JPanel shape_panel = new JPanel(new GridLayout(3, 2)); shape_panel.setBorder(BorderFactory.createTitledBorder("Edge shape")); e_line = new JRadioButton("line"); e_line.addActionListener(this); e_line.setSelected(true); // e_bent = new JRadioButton("bent line"); // e_bent.addActionListener(this); e_wedge = new JRadioButton("wedge"); e_wedge.addActionListener(this); e_quad = new JRadioButton("quad curve"); e_quad.addActionListener(this); e_cubic = new JRadioButton("cubic curve"); e_cubic.addActionListener(this); e_ortho = new JRadioButton("orthogonal"); e_ortho.addActionListener(this); ButtonGroup bg_shape = new ButtonGroup(); bg_shape.add(e_line); // bg.add(e_bent); bg_shape.add(e_wedge); bg_shape.add(e_quad); bg_shape.add(e_ortho); bg_shape.add(e_cubic); shape_panel.add(e_line); // shape_panel.add(e_bent); shape_panel.add(e_wedge); shape_panel.add(e_quad); shape_panel.add(e_cubic); shape_panel.add(e_ortho); fill_edges = new JCheckBox("fill edge shapes"); fill_edges.setSelected(false); fill_edges.addActionListener(this); shape_panel.add(fill_edges); shape_panel.setOpaque(true); e_color = new JCheckBox("highlight edge weights"); e_color.addActionListener(this); e_labels = new JCheckBox("show edge weight values"); e_labels.addActionListener(this); e_uarrow_pred = new JCheckBox("undirected"); e_uarrow_pred.addActionListener(this); e_darrow_pred = new JCheckBox("directed"); e_darrow_pred.addActionListener(this); e_darrow_pred.setSelected(true); e_arrow_centered = new JCheckBox("centered"); e_arrow_centered.addActionListener(this); JPanel arrow_panel = new JPanel(new GridLayout(1, 0)); arrow_panel.setBorder(BorderFactory.createTitledBorder("Show arrows")); arrow_panel.add(e_uarrow_pred); arrow_panel.add(e_darrow_pred); arrow_panel.add(e_arrow_centered); e_show_d = new JCheckBox("directed"); e_show_d.addActionListener(this); e_show_d.setSelected(true); e_show_u = new JCheckBox("undirected"); e_show_u.addActionListener(this); e_show_u.setSelected(true); JPanel show_edge_panel = new JPanel(new GridLayout(1, 0)); show_edge_panel.setBorder(BorderFactory.createTitledBorder("Show edges")); show_edge_panel.add(e_show_u); show_edge_panel.add(e_show_d); shape_panel.setAlignmentX(Component.LEFT_ALIGNMENT); edge_panel.add(shape_panel); gradient_panel.setAlignmentX(Component.LEFT_ALIGNMENT); edge_panel.add(gradient_panel); show_edge_panel.setAlignmentX(Component.LEFT_ALIGNMENT); edge_panel.add(show_edge_panel); arrow_panel.setAlignmentX(Component.LEFT_ALIGNMENT); edge_panel.add(arrow_panel); e_color.setAlignmentX(Component.LEFT_ALIGNMENT); edge_panel.add(e_color); e_labels.setAlignmentX(Component.LEFT_ALIGNMENT); edge_panel.add(e_labels); // set up zoom controls zoom_at_mouse = new JCheckBox("<html><center>zoom at mouse<p>(wheel only)</center></html>"); zoom_at_mouse.addActionListener(this); zoom_at_mouse.setSelected(true); final ScalingControl scaler = new CrossoverScalingControl(); JButton plus = new JButton("+"); plus.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { scaler.scale(vv, 1.1f, vv.getCenter()); } }); JButton minus = new JButton("-"); minus.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { scaler.scale(vv, 1 / 1.1f, vv.getCenter()); } }); JPanel zoomPanel = new JPanel(); zoomPanel.setBorder(BorderFactory.createTitledBorder("Zoom")); plus.setAlignmentX(Component.CENTER_ALIGNMENT); zoomPanel.add(plus); minus.setAlignmentX(Component.CENTER_ALIGNMENT); zoomPanel.add(minus); zoom_at_mouse.setAlignmentX(Component.CENTER_ALIGNMENT); zoomPanel.add(zoom_at_mouse); JPanel fontPanel = new JPanel(); // add font and zoom controls to center panel font = new JCheckBox("bold text"); font.addActionListener(this); font.setAlignmentX(Component.CENTER_ALIGNMENT); fontPanel.add(font); both_panel.add(zoomPanel); both_panel.add(fontPanel); JComboBox modeBox = gm.getModeComboBox(); modeBox.setAlignmentX(Component.CENTER_ALIGNMENT); JPanel modePanel = new JPanel(new BorderLayout()) { public Dimension getMaximumSize() { return getPreferredSize(); } }; modePanel.setBorder(BorderFactory.createTitledBorder("Mouse Mode")); modePanel.add(modeBox); JPanel comboGrid = new JPanel(new GridLayout(0, 1)); comboGrid.add(modePanel); fontPanel.add(comboGrid); JComboBox cb = new JComboBox(); cb.addItem(Renderer.VertexLabel.Position.N); cb.addItem(Renderer.VertexLabel.Position.NE); cb.addItem(Renderer.VertexLabel.Position.E); cb.addItem(Renderer.VertexLabel.Position.SE); cb.addItem(Renderer.VertexLabel.Position.S); cb.addItem(Renderer.VertexLabel.Position.SW); cb.addItem(Renderer.VertexLabel.Position.W); cb.addItem(Renderer.VertexLabel.Position.NW); cb.addItem(Renderer.VertexLabel.Position.N); cb.addItem(Renderer.VertexLabel.Position.CNTR); cb.addItem(Renderer.VertexLabel.Position.AUTO); cb.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { Renderer.VertexLabel.Position position = (Renderer.VertexLabel.Position) e.getItem(); vv.getRenderer().getVertexLabelRenderer().setPosition(position); vv.repaint(); } }); cb.setSelectedItem(Renderer.VertexLabel.Position.SE); JPanel positionPanel = new JPanel(); positionPanel.setBorder(BorderFactory.createTitledBorder("Label Position")); positionPanel.add(cb); comboGrid.add(positionPanel); }
From source file:mobi.omegacentauri.brainflex.LicenseDialog.java
public LicenseDialog() { super();/*from ww w . j ava 2 s .c om*/ setSize(640, 480); setTitle("Licenses"); Container pane = getContentPane(); pane.setLayout(new BoxLayout(pane, BoxLayout.Y_AXIS)); JTextArea licenseArea = new JTextArea(); licenseArea.setText("Copyright (c) 2014 Omega Centauri Software\n" + "includes:\n" + "* jSSC (Java Simple Serial Connector) - serial port communication library.\n" + " Copyright (c) 2010-13 Alexey Sokolov (scream3r)\n" + "* Apache Commons Math\n" + " Copyright 2001-2014 The Apache Software Foundation\n" + "\n" + "Overall licensing: GPL, version 3 or later\n" + "Apache Commons Math: Apache 2.0 license\n" + "\n" + "----------- OVERALL LICENSE -----------\n" + "\n" + " GNU GENERAL PUBLIC LICENSE\n" + " Version 3, 29 June 2007\n" + "\n" + " Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>\n" + " Everyone is permitted to copy and distribute verbatim copies\n" + " of this license document, but changing it is not allowed.\n" + "\n" + " Preamble\n" + "\n" + " The GNU General Public License is a free, copyleft license for\n" + "software and other kinds of works.\n" + "\n" + " The licenses for most software and other practical works are designed\n" + "to take away your freedom to share and change the works. By contrast,\n" + "the GNU General Public License is intended to guarantee your freedom to\n" + "share and change all versions of a program--to make sure it remains free\n" + "software for all its users. We, the Free Software Foundation, use the\n" + "GNU General Public License for most of our software; it applies also to\n" + "any other work released this way by its authors. You can apply it to\n" + "your programs, too.\n" + "\n" + " When we speak of free software, we are referring to freedom, not\n" + "price. Our General Public Licenses are designed to make sure that you\n" + "have the freedom to distribute copies of free software (and charge for\n" + "them if you wish), that you receive source code or can get it if you\n" + "want it, that you can change the software or use pieces of it in new\n" + "free programs, and that you know you can do these things.\n" + "\n" + " To protect your rights, we need to prevent others from denying you\n" + "these rights or asking you to surrender the rights. Therefore, you have\n" + "certain responsibilities if you distribute copies of the software, or if\n" + "you modify it: responsibilities to respect the freedom of others.\n" + "\n" + " For example, if you distribute copies of such a program, whether\n" + "gratis or for a fee, you must pass on to the recipients the same\n" + "freedoms that you received. You must make sure that they, too, receive\n" + "or can get the source code. And you must show them these terms so they\n" + "know their rights.\n" + "\n" + " Developers that use the GNU GPL protect your rights with two steps:\n" + "(1) assert copyright on the software, and (2) offer you this License\n" + "giving you legal permission to copy, distribute and/or modify it.\n" + "\n" + " For the developers\' and authors\' protection, the GPL clearly explains\n" + "that there is no warranty for this free software. For both users\' and\n" + "authors\' sake, the GPL requires that modified versions be marked as\n" + "changed, so that their problems will not be attributed erroneously to\n" + "authors of previous versions.\n" + "\n" + " Some devices are designed to deny users access to install or run\n" + "modified versions of the software inside them, although the manufacturer\n" + "can do so. This is fundamentally incompatible with the aim of\n" + "protecting users\' freedom to change the software. The systematic\n" + "pattern of such abuse occurs in the area of products for individuals to\n" + "use, which is precisely where it is most unacceptable. Therefore, we\n" + "have designed this version of the GPL to prohibit the practice for those\n" + "products. If such problems arise substantially in other domains, we\n" + "stand ready to extend this provision to those domains in future versions\n" + "of the GPL, as needed to protect the freedom of users.\n" + "\n" + " Finally, every program is threatened constantly by software patents.\n" + "States should not allow patents to restrict development and use of\n" + "software on general-purpose computers, but in those that do, we wish to\n" + "avoid the special danger that patents applied to a free program could\n" + "make it effectively proprietary. To prevent this, the GPL assures that\n" + "patents cannot be used to render the program non-free.\n" + "\n" + " The precise terms and conditions for copying, distribution and\n" + "modification follow.\n" + "\n" + " TERMS AND CONDITIONS\n" + "\n" + " 0. Definitions.\n" + "\n" + " \"This License\" refers to version 3 of the GNU General Public License.\n" + "\n" + " \"Copyright\" also means copyright-like laws that apply to other kinds of\n" + "works, such as semiconductor masks.\n" + "\n" + " \"The Program\" refers to any copyrightable work licensed under this\n" + "License. Each licensee is addressed as \"you\". \"Licensees\" and\n" + "\"recipients\" may be individuals or organizations.\n" + "\n" + " To \"modify\" a work means to copy from or adapt all or part of the work\n" + "in a fashion requiring copyright permission, other than the making of an\n" + "exact copy. The resulting work is called a \"modified version\" of the\n" + "earlier work or a work \"based on\" the earlier work.\n" + "\n" + " A \"covered work\" means either the unmodified Program or a work based\n" + "on the Program.\n" + "\n" + " To \"propagate\" a work means to do anything with it that, without\n" + "permission, would make you directly or secondarily liable for\n" + "infringement under applicable copyright law, except executing it on a\n" + "computer or modifying a private copy. Propagation includes copying,\n" + "distribution (with or without modification), making available to the\n" + "public, and in some countries other activities as well.\n" + "\n" + " To \"convey\" a work means any kind of propagation that enables other\n" + "parties to make or receive copies. Mere interaction with a user through\n" + "a computer network, with no transfer of a copy, is not conveying.\n" + "\n" + " An interactive user interface displays \"Appropriate Legal Notices\"\n" + "to the extent that it includes a convenient and prominently visible\n" + "feature that (1) displays an appropriate copyright notice, and (2)\n" + "tells the user that there is no warranty for the work (except to the\n" + "extent that warranties are provided), that licensees may convey the\n" + "work under this License, and how to view a copy of this License. If\n" + "the interface presents a list of user commands or options, such as a\n" + "menu, a prominent item in the list meets this criterion.\n" + "\n" + " 1. Source Code.\n" + "\n" + " The \"source code\" for a work means the preferred form of the work\n" + "for making modifications to it. \"Object code\" means any non-source\n" + "form of a work.\n" + "\n" + " A \"Standard Interface\" means an interface that either is an official\n" + "standard defined by a recognized standards body, or, in the case of\n" + "interfaces specified for a particular programming language, one that\n" + "is widely used among developers working in that language.\n" + "\n" + " The \"System Libraries\" of an executable work include anything, other\n" + "than the work as a whole, that (a) is included in the normal form of\n" + "packaging a Major Component, but which is not part of that Major\n" + "Component, and (b) serves only to enable use of the work with that\n" + "Major Component, or to implement a Standard Interface for which an\n" + "implementation is available to the public in source code form. A\n" + "\"Major Component\", in this context, means a major essential component\n" + "(kernel, window system, and so on) of the specific operating system\n" + "(if any) on which the executable work runs, or a compiler used to\n" + "produce the work, or an object code interpreter used to run it.\n" + "\n" + " The \"Corresponding Source\" for a work in object code form means all\n" + "the source code needed to generate, install, and (for an executable\n" + "work) run the object code and to modify the work, including scripts to\n" + "control those activities. However, it does not include the work\'s\n" + "System Libraries, or general-purpose tools or generally available free\n" + "programs which are used unmodified in performing those activities but\n" + "which are not part of the work. For example, Corresponding Source\n" + "includes interface definition files associated with source files for\n" + "the work, and the source code for shared libraries and dynamically\n" + "linked subprograms that the work is specifically designed to require,\n" + "such as by intimate data communication or control flow between those\n" + "subprograms and other parts of the work.\n" + "\n" + " The Corresponding Source need not include anything that users\n" + "can regenerate automatically from other parts of the Corresponding\n" + "Source.\n" + "\n" + " The Corresponding Source for a work in source code form is that\n" + "same work.\n" + "\n" + " 2. Basic Permissions.\n" + "\n" + " All rights granted under this License are granted for the term of\n" + "copyright on the Program, and are irrevocable provided the stated\n" + "conditions are met. This License explicitly affirms your unlimited\n" + "permission to run the unmodified Program. The output from running a\n" + "covered work is covered by this License only if the output, given its\n" + "content, constitutes a covered work. This License acknowledges your\n" + "rights of fair use or other equivalent, as provided by copyright law.\n" + "\n" + " You may make, run and propagate covered works that you do not\n" + "convey, without conditions so long as your license otherwise remains\n" + "in force. You may convey covered works to others for the sole purpose\n" + "of having them make modifications exclusively for you, or provide you\n" + "with facilities for running those works, provided that you comply with\n" + "the terms of this License in conveying all material for which you do\n" + "not control copyright. Those thus making or running the covered works\n" + "for you must do so exclusively on your behalf, under your direction\n" + "and control, on terms that prohibit them from making any copies of\n" + "your copyrighted material outside their relationship with you.\n" + "\n" + " Conveying under any other circumstances is permitted solely under\n" + "the conditions stated below. Sublicensing is not allowed; section 10\n" + "makes it unnecessary.\n" + "\n" + " 3. Protecting Users\' Legal Rights From Anti-Circumvention Law.\n" + "\n" + " No covered work shall be deemed part of an effective technological\n" + "measure under any applicable law fulfilling obligations under article\n" + "11 of the WIPO copyright treaty adopted on 20 December 1996, or\n" + "similar laws prohibiting or restricting circumvention of such\n" + "measures.\n" + "\n" + " When you convey a covered work, you waive any legal power to forbid\n" + "circumvention of technological measures to the extent such circumvention\n" + "is effected by exercising rights under this License with respect to\n" + "the covered work, and you disclaim any intention to limit operation or\n" + "modification of the work as a means of enforcing, against the work\'s\n" + "users, your or third parties\' legal rights to forbid circumvention of\n" + "technological measures.\n" + "\n" + " 4. Conveying Verbatim Copies.\n" + "\n" + " You may convey verbatim copies of the Program\'s source code as you\n" + "receive it, in any medium, provided that you conspicuously and\n" + "appropriately publish on each copy an appropriate copyright notice;\n" + "keep intact all notices stating that this License and any\n" + "non-permissive terms added in accord with section 7 apply to the code;\n" + "keep intact all notices of the absence of any warranty; and give all\n" + "recipients a copy of this License along with the Program.\n" + "\n" + " You may charge any price or no price for each copy that you convey,\n" + "and you may offer support or warranty protection for a fee.\n" + "\n" + " 5. Conveying Modified Source Versions.\n" + "\n" + " You may convey a work based on the Program, or the modifications to\n" + "produce it from the Program, in the form of source code under the\n" + "terms of section 4, provided that you also meet all of these conditions:\n" + "\n" + " a) The work must carry prominent notices stating that you modified\n" + " it, and giving a relevant date.\n" + "\n" + " b) The work must carry prominent notices stating that it is\n" + " released under this License and any conditions added under section\n" + " 7. This requirement modifies the requirement in section 4 to\n" + " \"keep intact all notices\".\n" + "\n" + " c) You must license the entire work, as a whole, under this\n" + " License to anyone who comes into possession of a copy. This\n" + " License will therefore apply, along with any applicable section 7\n" + " additional terms, to the whole of the work, and all its parts,\n" + " regardless of how they are packaged. This License gives no\n" + " permission to license the work in any other way, but it does not\n" + " invalidate such permission if you have separately received it.\n" + "\n" + " d) If the work has interactive user interfaces, each must display\n" + " Appropriate Legal Notices; however, if the Program has interactive\n" + " interfaces that do not display Appropriate Legal Notices, your\n" + " work need not make them do so.\n" + "\n" + " A compilation of a covered work with other separate and independent\n" + "works, which are not by their nature extensions of the covered work,\n" + "and which are not combined with it such as to form a larger program,\n" + "in or on a volume of a storage or distribution medium, is called an\n" + "\"aggregate\" if the compilation and its resulting copyright are not\n" + "used to limit the access or legal rights of the compilation\'s users\n" + "beyond what the individual works permit. Inclusion of a covered work\n" + "in an aggregate does not cause this License to apply to the other\n" + "parts of the aggregate.\n" + "\n" + " 6. Conveying Non-Source Forms.\n" + "\n" + " You may convey a covered work in object code form under the terms\n" + "of sections 4 and 5, provided that you also convey the\n" + "machine-readable Corresponding Source under the terms of this License,\n" + "in one of these ways:\n" + "\n" + " a) Convey the object code in, or embodied in, a physical product\n" + " (including a physical distribution medium), accompanied by the\n" + " Corresponding Source fixed on a durable physical medium\n" + " customarily used for software interchange.\n" + "\n" + " b) Convey the object code in, or embodied in, a physical product\n" + " (including a physical distribution medium), accompanied by a\n" + " written offer, valid for at least three years and valid for as\n" + " long as you offer spare parts or customer support for that product\n" + " model, to give anyone who possesses the object code either (1) a\n" + " copy of the Corresponding Source for all the software in the\n" + " product that is covered by this License, on a durable physical\n" + " medium customarily used for software interchange, for a price no\n" + " more than your reasonable cost of physically performing this\n" + " conveying of source, or (2) access to copy the\n" + " Corresponding Source from a network server at no charge.\n" + "\n" + " c) Convey individual copies of the object code with a copy of the\n" + " written offer to provide the Corresponding Source. This\n" + " alternative is allowed only occasionally and noncommercially, and\n" + " only if you received the object code with such an offer, in accord\n" + " with subsection 6b.\n" + "\n" + " d) Convey the object code by offering access from a designated\n" + " place (gratis or for a charge), and offer equivalent access to the\n" + " Corresponding Source in the same way through the same place at no\n" + " further charge. You need not require recipients to copy the\n" + " Corresponding Source along with the object code. If the place to\n" + " copy the object code is a network server, the Corresponding Source\n" + " may be on a different server (operated by you or a third party)\n" + " that supports equivalent copying facilities, provided you maintain\n" + " clear directions next to the object code saying where to find the\n" + " Corresponding Source. Regardless of what server hosts the\n" + " Corresponding Source, you remain obligated to ensure that it is\n" + " available for as long as needed to satisfy these requirements.\n" + "\n" + " e) Convey the object code using peer-to-peer transmission, provided\n" + " you inform other peers where the object code and Corresponding\n" + " Source of the work are being offered to the general public at no\n" + " charge under subsection 6d.\n" + "\n" + " A separable portion of the object code, whose source code is excluded\n" + "from the Corresponding Source as a System Library, need not be\n" + "included in conveying the object code work.\n" + "\n" + " A \"User Product\" is either (1) a \"consumer product\", which means any\n" + "tangible personal property which is normally used for personal, family,\n" + "or household purposes, or (2) anything designed or sold for incorporation\n" + "into a dwelling. In determining whether a product is a consumer product,\n" + "doubtful cases shall be resolved in favor of coverage. For a particular\n" + "product received by a particular user, \"normally used\" refers to a\n" + "typical or common use of that class of product, regardless of the status\n" + "of the particular user or of the way in which the particular user\n" + "actually uses, or expects or is expected to use, the product. A product\n" + "is a consumer product regardless of whether the product has substantial\n" + "commercial, industrial or non-consumer uses, unless such uses represent\n" + "the only significant mode of use of the product.\n" + "\n" + " \"Installation Information\" for a User Product means any methods,\n" + "procedures, authorization keys, or other information required to install\n" + "and execute modified versions of a covered work in that User Product from\n" + "a modified version of its Corresponding Source. The information must\n" + "suffice to ensure that the continued functioning of the modified object\n" + "code is in no case prevented or interfered with solely because\n" + "modification has been made.\n" + "\n" + " If you convey an object code work under this section in, or with, or\n" + "specifically for use in, a User Product, and the conveying occurs as\n" + "part of a transaction in which the right of possession and use of the\n" + "User Product is transferred to the recipient in perpetuity or for a\n" + "fixed term (regardless of how the transaction is characterized), the\n" + "Corresponding Source conveyed under this section must be accompanied\n" + "by the Installation Information. But this requirement does not apply\n" + "if neither you nor any third party retains the ability to install\n" + "modified object code on the User Product (for example, the work has\n" + "been installed in ROM).\n" + "\n" + " The requirement to provide Installation Information does not include a\n" + "requirement to continue to provide support service, warranty, or updates\n" + "for a work that has been modified or installed by the recipient, or for\n" + "the User Product in which it has been modified or installed. Access to a\n" + "network may be denied when the modification itself materially and\n" + "adversely affects the operation of the network or violates the rules and\n" + "protocols for communication across the network.\n" + "\n" + " Corresponding Source conveyed, and Installation Information provided,\n" + "in accord with this section must be in a format that is publicly\n" + "documented (and with an implementation available to the public in\n" + "source code form), and must require no special password or key for\n" + "unpacking, reading or copying.\n" + "\n" + " 7. Additional Terms.\n" + "\n" + " \"Additional permissions\" are terms that supplement the terms of this\n" + "License by making exceptions from one or more of its conditions.\n" + "Additional permissions that are applicable to the entire Program shall\n" + "be treated as though they were included in this License, to the extent\n" + "that they are valid under applicable law. If additional permissions\n" + "apply only to part of the Program, that part may be used separately\n" + "under those permissions, but the entire Program remains governed by\n" + "this License without regard to the additional permissions.\n" + "\n" + " When you convey a copy of a covered work, you may at your option\n" + "remove any additional permissions from that copy, or from any part of\n" + "it. (Additional permissions may be written to require their own\n" + "removal in certain cases when you modify the work.) You may place\n" + "additional permissions on material, added by you to a covered work,\n" + "for which you have or can give appropriate copyright permission.\n" + "\n" + " Notwithstanding any other provision of this License, for material you\n" + "add to a covered work, you may (if authorized by the copyright holders of\n" + "that material) supplement the terms of this License with terms:\n" + "\n" + " a) Disclaiming warranty or limiting liability differently from the\n" + " terms of sections 15 and 16 of this License; or\n" + "\n" + " b) Requiring preservation of specified reasonable legal notices or\n" + " author attributions in that material or in the Appropriate Legal\n" + " Notices displayed by works containing it; or\n" + "\n" + " c) Prohibiting misrepresentation of the origin of that material, or\n" + " requiring that modified versions of such material be marked in\n" + " reasonable ways as different from the original version; or\n" + "\n" + " d) Limiting the use for publicity purposes of names of licensors or\n" + " authors of the material; or\n" + "\n" + " e) Declining to grant rights under trademark law for use of some\n" + " trade names, trademarks, or service marks; or\n" + "\n" + " f) Requiring indemnification of licensors and authors of that\n" + " material by anyone who conveys the material (or modified versions of\n" + " it) with contractual assumptions of liability to the recipient, for\n" + " any liability that these contractual assumptions directly impose on\n" + " those licensors and authors.\n" + "\n" + " All other non-permissive additional terms are considered \"further\n" + "restrictions\" within the meaning of section 10. If the Program as you\n" + "received it, or any part of it, contains a notice stating that it is\n" + "governed by this License along with a term that is a further\n" + "restriction, you may remove that term. If a license document contains\n" + "a further restriction but permits relicensing or conveying under this\n" + "License, you may add to a covered work material governed by the terms\n" + "of that license document, provided that the further restriction does\n" + "not survive such relicensing or conveying.\n" + "\n" + " If you add terms to a covered work in accord with this section, you\n" + "must place, in the relevant source files, a statement of the\n" + "additional terms that apply to those files, or a notice indicating\n" + "where to find the applicable terms.\n" + "\n" + " Additional terms, permissive or non-permissive, may be stated in the\n" + "form of a separately written license, or stated as exceptions;\n" + "the above requirements apply either way.\n" + "\n" + " 8. Termination.\n" + "\n" + " You may not propagate or modify a covered work except as expressly\n" + "provided under this License. Any attempt otherwise to propagate or\n" + "modify it is void, and will automatically terminate your rights under\n" + "this License (including any patent licenses granted under the third\n" + "paragraph of section 11).\n" + "\n" + " However, if you cease all violation of this License, then your\n" + "license from a particular copyright holder is reinstated (a)\n" + "provisionally, unless and until the copyright holder explicitly and\n" + "finally terminates your license, and (b) permanently, if the copyright\n" + "holder fails to notify you of the violation by some reasonable means\n" + "prior to 60 days after the cessation.\n" + "\n" + " Moreover, your license from a particular copyright holder is\n" + "reinstated permanently if the copyright holder notifies you of the\n" + "violation by some reasonable means, this is the first time you have\n" + "received notice of violation of this License (for any work) from that\n" + "copyright holder, and you cure the violation prior to 30 days after\n" + "your receipt of the notice.\n" + "\n" + " Termination of your rights under this section does not terminate the\n" + "licenses of parties who have received copies or rights from you under\n" + "this License. If your rights have been terminated and not permanently\n" + "reinstated, you do not qualify to receive new licenses for the same\n" + "material under section 10.\n" + "\n" + " 9. Acceptance Not Required for Having Copies.\n" + "\n" + " You are not required to accept this License in order to receive or\n" + "run a copy of the Program. Ancillary propagation of a covered work\n" + "occurring solely as a consequence of using peer-to-peer transmission\n" + "to receive a copy likewise does not require acceptance. However,\n" + "nothing other than this License grants you permission to propagate or\n" + "modify any covered work. These actions infringe copyright if you do\n" + "not accept this License. Therefore, by modifying or propagating a\n" + "covered work, you indicate your acceptance of this License to do so.\n" + "\n" + " 10. Automatic Licensing of Downstream Recipients.\n" + "\n" + " Each time you convey a covered work, the recipient automatically\n" + "receives a license from the original licensors, to run, modify and\n" + "propagate that work, subject to this License. You are not responsible\n" + "for enforcing compliance by third parties with this License.\n" + "\n" + " An \"entity transaction\" is a transaction transferring control of an\n" + "organization, or substantially all assets of one, or subdividing an\n" + "organization, or merging organizations. If propagation of a covered\n" + "work results from an entity transaction, each party to that\n" + "transaction who receives a copy of the work also receives whatever\n" + "licenses to the work the party\'s predecessor in interest had or could\n" + "give under the previous paragraph, plus a right to possession of the\n" + "Corresponding Source of the work from the predecessor in interest, if\n" + "the predecessor has it or can get it with reasonable efforts.\n" + "\n" + " You may not impose any further restrictions on the exercise of the\n" + "rights granted or affirmed under this License. For example, you may\n" + "not impose a license fee, royalty, or other charge for exercise of\n" + "rights granted under this License, and you may not initiate litigation\n" + "(including a cross-claim or counterclaim in a lawsuit) alleging that\n" + "any patent claim is infringed by making, using, selling, offering for\n" + "sale, or importing the Program or any portion of it.\n" + "\n" + " 11. Patents.\n" + "\n" + " A \"contributor\" is a copyright holder who authorizes use under this\n" + "License of the Program or a work on which the Program is based. The\n" + "work thus licensed is called the contributor\'s \"contributor version\".\n" + "\n" + " A contributor\'s \"essential patent claims\" are all patent claims\n" + "owned or controlled by the contributor, whether already acquired or\n" + "hereafter acquired, that would be infringed by some manner, permitted\n" + "by this License, of making, using, or selling its contributor version,\n" + "but do not include claims that would be infringed only as a\n" + "consequence of further modification of the contributor version. For\n" + "purposes of this definition, \"control\" includes the right to grant\n" + "patent sublicenses in a manner consistent with the requirements of\n" + "this License.\n" + "\n" + " Each contributor grants you a non-exclusive, worldwide, royalty-free\n" + "patent license under the contributor\'s essential patent claims, to\n" + "make, use, sell, offer for sale, import and otherwise run, modify and\n" + "propagate the contents of its contributor version.\n" + "\n" + " In the following three paragraphs, a \"patent license\" is any express\n" + "agreement or commitment, however denominated, not to enforce a patent\n" + "(such as an express permission to practice a patent or covenant not to\n" + "sue for patent infringement). To \"grant\" such a patent license to a\n" + "party means to make such an agreement or commitment not to enforce a\n" + "patent against the party.\n" + "\n" + " If you convey a covered work, knowingly relying on a patent license,\n" + "and the Corresponding Source of the work is not available for anyone\n" + "to copy, free of charge and under the terms of this License, through a\n" + "publicly available network server or other readily accessible means,\n" + "then you must either (1) cause the Corresponding Source to be so\n" + "available, or (2) arrange to deprive yourself of the benefit of the\n" + "patent license for this particular work, or (3) arrange, in a manner\n" + "consistent with the requirements of this License, to extend the patent\n" + "license to downstream recipients. \"Knowingly relying\" means you have\n" + "actual knowledge that, but for the patent license, your conveying the\n" + "covered work in a country, or your recipient\'s use of the covered work\n" + "in a country, would infringe one or more identifiable patents in that\n" + "country that you have reason to believe are valid.\n" + "\n" + " If, pursuant to or in connection with a single transaction or\n" + "arrangement, you convey, or propagate by procuring conveyance of, a\n" + "covered work, and grant a patent license to some of the parties\n" + "receiving the covered work authorizing them to use, propagate, modify\n" + "or convey a specific copy of the covered work, then the patent license\n" + "you grant is automatically extended to all recipients of the covered\n" + "work and works based on it.\n" + "\n" + " A patent license is \"discriminatory\" if it does not include within\n" + "the scope of its coverage, prohibits the exercise of, or is\n" + "conditioned on the non-exercise of one or more of the rights that are\n" + "specifically granted under this License. You may not convey a covered\n" + "work if you are a party to an arrangement with a third party that is\n" + "in the business of distributing software, under which you make payment\n" + "to the third party based on the extent of your activity of conveying\n" + "the work, and under which the third party grants, to any of the\n" + "parties who would receive the covered work from you, a discriminatory\n" + "patent license (a) in connection with copies of the covered work\n" + "conveyed by you (or copies made from those copies), or (b) primarily\n" + "for and in connection with specific products or compilations that\n" + "contain the covered work, unless you entered into that arrangement,\n" + "or that patent license was granted, prior to 28 March 2007.\n" + "\n" + " Nothing in this License shall be construed as excluding or limiting\n" + "any implied license or other defenses to infringement that may\n" + "otherwise be available to you under applicable patent law.\n" + "\n" + " 12. No Surrender of Others\' Freedom.\n" + "\n" + " If conditions are imposed on you (whether by court order, agreement or\n" + "otherwise) that contradict the conditions of this License, they do not\n" + "excuse you from the conditions of this License. If you cannot convey a\n" + "covered work so as to satisfy simultaneously your obligations under this\n" + "License and any other pertinent obligations, then as a consequence you may\n" + "not convey it at all. For example, if you agree to terms that obligate you\n" + "to collect a royalty for further conveying from those to whom you convey\n" + "the Program, the only way you could satisfy both those terms and this\n" + "License would be to refrain entirely from conveying the Program.\n" + "\n" + " 13. Use with the GNU Affero General Public License.\n" + "\n" + " Notwithstanding any other provision of this License, you have\n" + "permission to link or combine any covered work with a work licensed\n" + "under version 3 of the GNU Affero General Public License into a single\n" + "combined work, and to convey the resulting work. The terms of this\n" + "License will continue to apply to the part which is the covered work,\n" + "but the special requirements of the GNU Affero General Public License,\n" + "section 13, concerning interaction through a network will apply to the\n" + "combination as such.\n" + "\n" + " 14. Revised Versions of this License.\n" + "\n" + " The Free Software Foundation may publish revised and/or new versions of\n" + "the GNU General Public License from time to time. Such new versions will\n" + "be similar in spirit to the present version, but may differ in detail to\n" + "address new problems or concerns.\n" + "\n" + " Each version is given a distinguishing version number. If the\n" + "Program specifies that a certain numbered version of the GNU General\n" + "Public License \"or any later version\" applies to it, you have the\n" + "option of following the terms and conditions either of that numbered\n" + "version or of any later version published by the Free Software\n" + "Foundation. If the Program does not specify a version number of the\n" + "GNU General Public License, you may choose any version ever published\n" + "by the Free Software Foundation.\n" + "\n" + " If the Program specifies that a proxy can decide which future\n" + "versions of the GNU General Public License can be used, that proxy\'s\n" + "public statement of acceptance of a version permanently authorizes you\n" + "to choose that version for the Program.\n" + "\n" + " Later license versions may give you additional or different\n" + "permissions. However, no additional obligations are imposed on any\n" + "author or copyright holder as a result of your choosing to follow a\n" + "later version.\n" + "\n" + " 15. Disclaimer of Warranty.\n" + "\n" + " THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY\n" + "APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT\n" + "HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY\n" + "OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,\n" + "THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n" + "PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM\n" + "IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF\n" + "ALL NECESSARY SERVICING, REPAIR OR CORRECTION.\n" + "\n" + " 16. Limitation of Liability.\n" + "\n" + " IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\n" + "WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS\n" + "THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY\n" + "GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE\n" + "USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF\n" + "DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD\n" + "PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),\n" + "EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF\n" + "SUCH DAMAGES.\n" + "\n" + " 17. Interpretation of Sections 15 and 16.\n" + "\n" + " If the disclaimer of warranty and limitation of liability provided\n" + "above cannot be given local legal effect according to their terms,\n" + "reviewing courts shall apply local law that most closely approximates\n" + "an absolute waiver of all civil liability in connection with the\n" + "Program, unless a warranty or assumption of liability accompanies a\n" + "copy of the Program in return for a fee.\n" + "\n" + " END OF TERMS AND CONDITIONS\n" + "\n" + " How to Apply These Terms to Your New Programs\n" + "\n" + " If you develop a new program, and you want it to be of the greatest\n" + "possible use to the public, the best way to achieve this is to make it\n" + "free software which everyone can redistribute and change under these terms.\n" + "\n" + " To do so, attach the following notices to the program. It is safest\n" + "to attach them to the start of each source file to most effectively\n" + "state the exclusion of warranty; and each file should have at least\n" + "the \"copyright\" line and a pointer to where the full notice is found.\n" + "\n" + " <one line to give the program\'s name and a brief idea of what it does.>\n" + " Copyright (C) <year> <name of author>\n" + "\n" + " This program is free software: you can redistribute it and/or modify\n" + " it under the terms of the GNU General Public License as published by\n" + " the Free Software Foundation, either version 3 of the License, or\n" + " (at your option) any later version.\n" + "\n" + " This program is distributed in the hope that it will be useful,\n" + " but WITHOUT ANY WARRANTY; without even the implied warranty of\n" + " MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" + " GNU General Public License for more details.\n" + "\n" + " You should have received a copy of the GNU General Public License\n" + " along with this program. If not, see <http://www.gnu.org/licenses/>.\n" + "\n" + "Also add information on how to contact you by electronic and paper mail.\n" + "\n" + " If the program does terminal interaction, make it output a short\n" + "notice like this when it starts in an interactive mode:\n" + "\n" + " <program> Copyright (C) <year> <name of author>\n" + " This program comes with ABSOLUTELY NO WARRANTY; for details type `show w\'.\n" + " This is free software, and you are welcome to redistribute it\n" + " under certain conditions; type `show c\' for details.\n" + "\n" + "The hypothetical commands `show w\' and `show c\' should show the appropriate\n" + "parts of the General Public License. Of course, your program\'s commands\n" + "might be different; for a GUI interface, you would use an \"about box\".\n" + "\n" + " You should also get your employer (if you work as a programmer) or school,\n" + "if any, to sign a \"copyright disclaimer\" for the program, if necessary.\n" + "For more information on this, and how to apply and follow the GNU GPL, see\n" + "<http://www.gnu.org/licenses/>.\n" + "\n" + " The GNU General Public License does not permit incorporating your program\n" + "into proprietary programs. If your program is a subroutine library, you\n" + "may consider it more useful to permit linking proprietary applications with\n" + "the library. If this is what you want to do, use the GNU Lesser General\n" + "Public License instead of this License. But first, please read\n" + "<http://www.gnu.org/philosophy/why-not-lgpl.html>.\n" + "\n" + "----------- MATH COMMONS LICENSE -----------\n" + "\n" + "\n" + " Apache License\n" + " Version 2.0, January 2004\n" + " http://www.apache.org/licenses/\n" + "\n" + " TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n" + "\n" + " 1. Definitions.\n" + "\n" + " \"License\" shall mean the terms and conditions for use, reproduction,\n" + " and distribution as defined by Sections 1 through 9 of this document.\n" + "\n" + " \"Licensor\" shall mean the copyright owner or entity authorized by\n" + " the copyright owner that is granting the License.\n" + "\n" + " \"Legal Entity\" shall mean the union of the acting entity and all\n" + " other entities that control, are controlled by, or are under common\n" + " control with that entity. For the purposes of this definition,\n" + " \"control\" means (i) the power, direct or indirect, to cause the\n" + " direction or management of such entity, whether by contract or\n" + " otherwise, or (ii) ownership of fifty percent (50%) or more of the\n" + " outstanding shares, or (iii) beneficial ownership of such entity.\n" + "\n" + " \"You\" (or \"Your\") shall mean an individual or Legal Entity\n" + " exercising permissions granted by this License.\n" + "\n" + " \"Source\" form shall mean the preferred form for making modifications,\n" + " including but not limited to software source code, documentation\n" + " source, and configuration files.\n" + "\n" + " \"Object\" form shall mean any form resulting from mechanical\n" + " transformation or translation of a Source form, including but\n" + " not limited to compiled object code, generated documentation,\n" + " and conversions to other media types.\n" + "\n" + " \"Work\" shall mean the work of authorship, whether in Source or\n" + " Object form, made available under the License, as indicated by a\n" + " copyright notice that is included in or attached to the work\n" + " (an example is provided in the Appendix below).\n" + "\n" + " \"Derivative Works\" shall mean any work, whether in Source or Object\n" + " form, that is based on (or derived from) the Work and for which the\n" + " editorial revisions, annotations, elaborations, or other modifications\n" + " represent, as a whole, an original work of authorship. For the purposes\n" + " of this License, Derivative Works shall not include works that remain\n" + " separable from, or merely link (or bind by name) to the interfaces of,\n" + " the Work and Derivative Works thereof.\n" + "\n" + " \"Contribution\" shall mean any work of authorship, including\n" + " the original version of the Work and any modifications or additions\n" + " to that Work or Derivative Works thereof, that is intentionally\n" + " submitted to Licensor for inclusion in the Work by the copyright owner\n" + " or by an individual or Legal Entity authorized to submit on behalf of\n" + " the copyright owner. For the purposes of this definition, \"submitted\"\n" + " means any form of electronic, verbal, or written communication sent\n" + " to the Licensor or its representatives, including but not limited to\n" + " communication on electronic mailing lists, source code control systems,\n" + " and issue tracking systems that are managed by, or on behalf of, the\n" + " Licensor for the purpose of discussing and improving the Work, but\n" + " excluding communication that is conspicuously marked or otherwise\n" + " designated in writing by the copyright owner as \"Not a Contribution.\"\n" + "\n" + " \"Contributor\" shall mean Licensor and any individual or Legal Entity\n" + " on behalf of whom a Contribution has been received by Licensor and\n" + " subsequently incorporated within the Work.\n" + "\n" + " 2. Grant of Copyright License. Subject to the terms and conditions of\n" + " this License, each Contributor hereby grants to You a perpetual,\n" + " worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n" + " copyright license to reproduce, prepare Derivative Works of,\n" + " publicly display, publicly perform, sublicense, and distribute the\n" + " Work and such Derivative Works in Source or Object form.\n" + "\n" + " 3. Grant of Patent License. Subject to the terms and conditions of\n" + " this License, each Contributor hereby grants to You a perpetual,\n" + " worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n" + " (except as stated in this section) patent license to make, have made,\n" + " use, offer to sell, sell, import, and otherwise transfer the Work,\n" + " where such license applies only to those patent claims licensable\n" + " by such Contributor that are necessarily infringed by their\n" + " Contribution(s) alone or by combination of their Contribution(s)\n" + " with the Work to which such Contribution(s) was submitted. If You\n" + " institute patent litigation against any entity (including a\n" + " cross-claim or counterclaim in a lawsuit) alleging that the Work\n" + " or a Contribution incorporated within the Work constitutes direct\n" + " or contributory patent infringement, then any patent licenses\n" + " granted to You under this License for that Work shall terminate\n" + " as of the date such litigation is filed.\n" + "\n" + " 4. Redistribution. You may reproduce and distribute copies of the\n" + " Work or Derivative Works thereof in any medium, with or without\n" + " modifications, and in Source or Object form, provided that You\n" + " meet the following conditions:\n" + "\n" + " (a) You must give any other recipients of the Work or\n" + " Derivative Works a copy of this License; and\n" + "\n" + " (b) You must cause any modified files to carry prominent notices\n" + " stating that You changed the files; and\n" + "\n" + " (c) You must retain, in the Source form of any Derivative Works\n" + " that You distribute, all copyright, patent, trademark, and\n" + " attribution notices from the Source form of the Work,\n" + " excluding those notices that do not pertain to any part of\n" + " the Derivative Works; and\n" + "\n" + " (d) If the Work includes a \"NOTICE\" text file as part of its\n" + " distribution, then any Derivative Works that You distribute must\n" + " include a readable copy of the attribution notices contained\n" + " within such NOTICE file, excluding those notices that do not\n" + " pertain to any part of the Derivative Works, in at least one\n" + " of the following places: within a NOTICE text file distributed\n" + " as part of the Derivative Works; within the Source form or\n" + " documentation, if provided along with the Derivative Works; or,\n" + " within a display generated by the Derivative Works, if and\n" + " wherever such third-party notices normally appear. The contents\n" + " of the NOTICE file are for informational purposes only and\n" + " do not modify the License. You may add Your own attribution\n" + " notices within Derivative Works that You distribute, alongside\n" + " or as an addendum to the NOTICE text from the Work, provided\n" + " that such additional attribution notices cannot be construed\n" + " as modifying the License.\n" + "\n" + " You may add Your own copyright statement to Your modifications and\n" + " may provide additional or different license terms and conditions\n" + " for use, reproduction, or distribution of Your modifications, or\n" + " for any such Derivative Works as a whole, provided Your use,\n" + " reproduction, and distribution of the Work otherwise complies with\n" + " the conditions stated in this License.\n" + "\n" + " 5. Submission of Contributions. Unless You explicitly state otherwise,\n" + " any Contribution intentionally submitted for inclusion in the Work\n" + " by You to the Licensor shall be under the terms and conditions of\n" + " this License, without any additional terms or conditions.\n" + " Notwithstanding the above, nothing herein shall supersede or modify\n" + " the terms of any separate license agreement you may have executed\n" + " with Licensor regarding such Contributions.\n" + "\n" + " 6. Trademarks. This License does not grant permission to use the trade\n" + " names, trademarks, service marks, or product names of the Licensor,\n" + " except as required for reasonable and customary use in describing the\n" + " origin of the Work and reproducing the content of the NOTICE file.\n" + "\n" + " 7. Disclaimer of Warranty. Unless required by applicable law or\n" + " agreed to in writing, Licensor provides the Work (and each\n" + " Contributor provides its Contributions) on an \"AS IS\" BASIS,\n" + " WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n" + " implied, including, without limitation, any warranties or conditions\n" + " of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n" + " PARTICULAR PURPOSE. You are solely responsible for determining the\n" + " appropriateness of using or redistributing the Work and assume any\n" + " risks associated with Your exercise of permissions under this License.\n" + "\n" + " 8. Limitation of Liability. In no event and under no legal theory,\n" + " whether in tort (including negligence), contract, or otherwise,\n" + " unless required by applicable law (such as deliberate and grossly\n" + " negligent acts) or agreed to in writing, shall any Contributor be\n" + " liable to You for damages, including any direct, indirect, special,\n" + " incidental, or consequential damages of any character arising as a\n" + " result of this License or out of the use or inability to use the\n" + " Work (including but not limited to damages for loss of goodwill,\n" + " work stoppage, computer failure or malfunction, or any and all\n" + " other commercial damages or losses), even if such Contributor\n" + " has been advised of the possibility of such damages.\n" + "\n" + " 9. Accepting Warranty or Additional Liability. While redistributing\n" + " the Work or Derivative Works thereof, You may choose to offer,\n" + " and charge a fee for, acceptance of support, warranty, indemnity,\n" + " or other liability obligations and/or rights consistent with this\n" + " License. However, in accepting such obligations, You may act only\n" + " on Your own behalf and on Your sole responsibility, not on behalf\n" + " of any other Contributor, and only if You agree to indemnify,\n" + " defend, and hold each Contributor harmless for any liability\n" + " incurred by, or claims asserted against, such Contributor by reason\n" + " of your accepting any such warranty or additional liability.\n" + "\n" + " END OF TERMS AND CONDITIONS\n" + "\n" + " APPENDIX: How to apply the Apache License to your work.\n" + "\n" + " To apply the Apache License to your work, attach the following\n" + " boilerplate notice, with the fields enclosed by brackets \"[]\"\n" + " replaced with your own identifying information. (Don\'t include\n" + " the brackets!) The text should be enclosed in the appropriate\n" + " comment syntax for the file format. We also recommend that a\n" + " file or class name and description of purpose be included on the\n" + " same \"printed page\" as the copyright notice for easier\n" + " identification within third-party archives.\n" + "\n" + " Copyright [yyyy] [name of copyright owner]\n" + "\n" + " Licensed under the Apache License, Version 2.0 (the \"License\");\n" + " you may not use this file except in compliance with the License.\n" + " You may obtain a copy of the License at\n" + "\n" + " http://www.apache.org/licenses/LICENSE-2.0\n" + "\n" + " Unless required by applicable law or agreed to in writing, software\n" + " distributed under the License is distributed on an \"AS IS\" BASIS,\n" + " WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n" + " See the License for the specific language governing permissions and\n" + " limitations under the License.\n" + "\n" + "\n" + "APACHE COMMONS MATH DERIVATIVE WORKS: \n" + "\n" + "The Apache commons-math library includes a number of subcomponents\n" + "whose implementation is derived from original sources written\n" + "in C or Fortran. License terms of the original sources\n" + "are reproduced below.\n" + "\n" + "===============================================================================\n" + "For the lmder, lmpar and qrsolv Fortran routine from minpack and translated in\n" + "the LevenbergMarquardtOptimizer class in package\n" + "org.apache.commons.math3.optimization.general \n" + "Original source copyright and license statement:\n" + "\n" + "Minpack Copyright Notice (1999) University of Chicago. All rights reserved\n" + "\n" + "Redistribution and use in source and binary forms, with or\n" + "without modification, are permitted provided that the\n" + "following conditions are met:\n" + "\n" + "1. Redistributions of source code must retain the above\n" + "copyright notice, this list of conditions and the following\n" + "disclaimer.\n" + "\n" + "2. Redistributions in binary form must reproduce the above\n" + "copyright notice, this list of conditions and the following\n" + "disclaimer in the documentation and/or other materials\n" + "provided with the distribution.\n" + "\n" + "3. The end-user documentation included with the\n" + "redistribution, if any, must include the following\n" + "acknowledgment:\n" + "\n" + " \"This product includes software developed by the\n" + " University of Chicago, as Operator of Argonne National\n" + " Laboratory.\n" + "\n" + "Alternately, this acknowledgment may appear in the software\n" + "itself, if and wherever such third-party acknowledgments\n" + "normally appear.\n" + "\n" + "4. WARRANTY DISCLAIMER. THE SOFTWARE IS SUPPLIED \"AS IS\"\n" + "WITHOUT WARRANTY OF ANY KIND. THE COPYRIGHT HOLDER, THE\n" + "UNITED STATES, THE UNITED STATES DEPARTMENT OF ENERGY, AND\n" + "THEIR EMPLOYEES: (1) DISCLAIM ANY WARRANTIES, EXPRESS OR\n" + "IMPLIED, INCLUDING BUT NOT LIMITED TO ANY IMPLIED WARRANTIES\n" + "OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE\n" + "OR NON-INFRINGEMENT, (2) DO NOT ASSUME ANY LEGAL LIABILITY\n" + "OR RESPONSIBILITY FOR THE ACCURACY, COMPLETENESS, OR\n" + "USEFULNESS OF THE SOFTWARE, (3) DO NOT REPRESENT THAT USE OF\n" + "THE SOFTWARE WOULD NOT INFRINGE PRIVATELY OWNED RIGHTS, (4)\n" + "DO NOT WARRANT THAT THE SOFTWARE WILL FUNCTION\n" + "UNINTERRUPTED, THAT IT IS ERROR-FREE OR THAT ANY ERRORS WILL\n" + "BE CORRECTED.\n" + "\n" + "5. LIMITATION OF LIABILITY. IN NO EVENT WILL THE COPYRIGHT\n" + "HOLDER, THE UNITED STATES, THE UNITED STATES DEPARTMENT OF\n" + "ENERGY, OR THEIR EMPLOYEES: BE LIABLE FOR ANY INDIRECT,\n" + "INCIDENTAL, CONSEQUENTIAL, SPECIAL OR PUNITIVE DAMAGES OF\n" + "ANY KIND OR NATURE, INCLUDING BUT NOT LIMITED TO LOSS OF\n" + "PROFITS OR LOSS OF DATA, FOR ANY REASON WHATSOEVER, WHETHER\n" + "SUCH LIABILITY IS ASSERTED ON THE BASIS OF CONTRACT, TORT\n" + "(INCLUDING NEGLIGENCE OR STRICT LIABILITY), OR OTHERWISE,\n" + "EVEN IF ANY OF SAID PARTIES HAS BEEN WARNED OF THE\n" + "POSSIBILITY OF SUCH LOSS OR DAMAGES.\n" + "===============================================================================\n" + "\n" + "Copyright and license statement for the odex Fortran routine developed by\n" + "E. Hairer and G. Wanner and translated in GraggBulirschStoerIntegrator class\n" + "in package org.apache.commons.math3.ode.nonstiff:\n" + "\n" + "\n" + "Copyright (c) 2004, Ernst Hairer\n" + "\n" + "Redistribution and use in source and binary forms, with or without \n" + "modification, are permitted provided that the following conditions are \n" + "met:\n" + "\n" + "- Redistributions of source code must retain the above copyright \n" + "notice, this list of conditions and the following disclaimer.\n" + "\n" + "- Redistributions in binary form must reproduce the above copyright \n" + "notice, this list of conditions and the following disclaimer in the \n" + "documentation and/or other materials provided with the distribution.\n" + "\n" + "THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS \n" + "IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED \n" + "TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A \n" + "PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR \n" + "CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, \n" + "EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, \n" + "PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR \n" + "PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF \n" + "LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING \n" + "NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS \n" + "SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n" + "===============================================================================\n" + "\n" + "Copyright and license statement for the original lapack fortran routines\n" + "translated in EigenDecompositionImpl class in package\n" + "org.apache.commons.math3.linear:\n" + "\n" + "Copyright (c) 1992-2008 The University of Tennessee. All rights reserved.\n" + "\n" + "$COPYRIGHT$\n" + "\n" + "Additional copyrights may follow\n" + "\n" + "$HEADER$\n" + "\n" + "Redistribution and use in source and binary forms, with or without\n" + "modification, are permitted provided that the following conditions are\n" + "met:\n" + "\n" + "- Redistributions of source code must retain the above copyright\n" + " notice, this list of conditions and the following disclaimer. \n" + " \n" + "- Redistributions in binary form must reproduce the above copyright\n" + " notice, this list of conditions and the following disclaimer listed\n" + " in this license in the documentation and/or other materials\n" + " provided with the distribution.\n" + " \n" + "- Neither the name of the copyright holders nor the names of its\n" + " contributors may be used to endorse or promote products derived from\n" + " this software without specific prior written permission.\n" + " \n" + "THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n" + "\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT \n" + "LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n" + "A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT \n" + "OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n" + "SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n" + "LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n" + "DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n" + "THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT \n" + "(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n" + "OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \n" + "===============================================================================\n" + "\n" + "Copyright and license statement for the original Mersenne twister C\n" + "routines translated in MersenneTwister class in package \n" + "org.apache.commons.math3.random:\n" + "\n" + " Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura,\n" + " All rights reserved. \n" + "\n" + " Redistribution and use in source and binary forms, with or without\n" + " modification, are permitted provided that the following conditions\n" + " are met:\n" + "\n" + " 1. Redistributions of source code must retain the above copyright\n" + " notice, this list of conditions and the following disclaimer.\n" + "\n" + " 2. Redistributions in binary form must reproduce the above copyright\n" + " notice, this list of conditions and the following disclaimer in the\n" + " documentation and/or other materials provided with the distribution.\n" + "\n" + " 3. The names of its contributors may not be used to endorse or promote \n" + " products derived from this software without specific prior written \n" + " permission.\n" + "\n" + " THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n" + " \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n" + " LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n" + " A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR\n" + " CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\n" + " EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n" + " PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n" + " PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n" + " LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n" + " NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n" + " SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n" + "\n" + "===============================================================================\n" + "\n" + "The class \"org.apache.commons.math3.exception.util.LocalizedFormatsTest\" is\n" + "an adapted version of \"OrekitMessagesTest\" test class for the Orekit library\n" + "The \"org.apache.commons.math3.analysis.interpolation.HermiteInterpolator\"\n" + "has been imported from the Orekit space flight dynamics library.\n" + "\n" + "Th Orekit library is described at:\n" + " https://www.orekit.org/forge/projects/orekit\n" + "The original files are distributed under the terms of the Apache 2 license\n" + "which is: Copyright 2010 CS Communication & Systmes\n" + "\n" + "===============================================================================\n" + "\n" + "The initial code for shuffling an array (originally in class\n" + "\"org.apache.commons.math3.random.RandomDataGenerator\", now replaced by\n" + "a method in class \"org.apache.commons.math3.util.MathArrays\") was\n" + "inspired from the algorithm description provided in\n" + "\"Algorithms\", by Ian Craw and John Pulham (University of Aberdeen 1999).\n" + "The textbook (containing a proof that the shuffle is uniformly random) is\n" + "available here:\n" + " http://citeseerx.ist.psu.edu/viewdoc/download;?doi=10.1.1.173.1898&rep=rep1&type=pdf\n" + "\n" + "===============================================================================\n" + "License statement for the direction numbers in the resource files for Sobol sequences.\n" + "\n" + "-----------------------------------------------------------------------------\n" + "Licence pertaining to sobol.cc and the accompanying sets of direction numbers\n" + "\n" + "-----------------------------------------------------------------------------\n" + "Copyright (c) 2008, Frances Y. Kuo and Stephen Joe\n" + "All rights reserved.\n" + "\n" + "Redistribution and use in source and binary forms, with or without\n" + "modification, are permitted provided that the following conditions are met:\n" + "\n" + " * Redistributions of source code must retain the above copyright\n" + " notice, this list of conditions and the following disclaimer.\n" + "\n" + " * Redistributions in binary form must reproduce the above copyright\n" + " notice, this list of conditions and the following disclaimer in the\n" + " documentation and/or other materials provided with the distribution.\n" + "\n" + " * Neither the names of the copyright holders nor the names of the\n" + " University of New South Wales and the University of Waikato\n" + " and its contributors may be used to endorse or promote products derived\n" + " from this software without specific prior written permission.\n" + "\n" + "THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS\'\' AND ANY\n" + "EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n" + "WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n" + "DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY\n" + "DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n" + "(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n" + "LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n" + "ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n" + "(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n" + "SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n" + "===============================================================================\n" + "\n" + "The initial commit of package \"org.apache.commons.math3.ml.neuralnet\" is\n" + "an adapted version of code developed in the context of the Data Processing\n" + "and Analysis Consortium (DPAC) of the \"Gaia\" project of the European Space\n" + "Agency (ESA).\n" + "===============================================================================\n"); licenseArea.setEditable(false); licenseArea.setCaretPosition(0); JScrollPane license = new JScrollPane(licenseArea); pane.add(license); JButton ok = new JButton("OK"); ok.setAlignmentX(Component.CENTER_ALIGNMENT); ok.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { dispose(); } }); pane.add(ok); }
From source file:edu.uci.ics.jung.samples.PluggableRendererDemo.java
/** * @param jp panel to which controls will be added *//* w ww.java2s . c o m*/ @SuppressWarnings({ "rawtypes", "unchecked" }) protected void addBottomControls(final JPanel jp) { final JPanel control_panel = new JPanel(); jp.add(control_panel, BorderLayout.EAST); control_panel.setLayout(new BorderLayout()); final Box vertex_panel = Box.createVerticalBox(); vertex_panel.setBorder(BorderFactory.createTitledBorder("Vertices")); final Box edge_panel = Box.createVerticalBox(); edge_panel.setBorder(BorderFactory.createTitledBorder("Edges")); final Box both_panel = Box.createVerticalBox(); control_panel.add(vertex_panel, BorderLayout.NORTH); control_panel.add(edge_panel, BorderLayout.SOUTH); control_panel.add(both_panel, BorderLayout.CENTER); // set up vertex controls v_color = new JCheckBox("seed highlight"); v_color.addActionListener(this); v_stroke = new JCheckBox("stroke highlight on selection"); v_stroke.addActionListener(this); v_labels = new JCheckBox("show voltage values"); v_labels.addActionListener(this); v_shape = new JCheckBox("shape by degree"); v_shape.addActionListener(this); v_size = new JCheckBox("size by voltage"); v_size.addActionListener(this); v_size.setSelected(true); v_aspect = new JCheckBox("stretch by degree ratio"); v_aspect.addActionListener(this); v_small = new JCheckBox("filter when degree < " + VertexDisplayPredicate.MIN_DEGREE); v_small.addActionListener(this); vertex_panel.add(v_color); vertex_panel.add(v_stroke); vertex_panel.add(v_labels); vertex_panel.add(v_shape); vertex_panel.add(v_size); vertex_panel.add(v_aspect); vertex_panel.add(v_small); // set up edge controls JPanel gradient_panel = new JPanel(new GridLayout(1, 0)); gradient_panel.setBorder(BorderFactory.createTitledBorder("Edge paint")); no_gradient = new JRadioButton("Solid color"); no_gradient.addActionListener(this); no_gradient.setSelected(true); // gradient_absolute = new JRadioButton("Absolute gradient"); // gradient_absolute.addActionListener(this); gradient_relative = new JRadioButton("Gradient"); gradient_relative.addActionListener(this); ButtonGroup bg_grad = new ButtonGroup(); bg_grad.add(no_gradient); bg_grad.add(gradient_relative); //bg_grad.add(gradient_absolute); gradient_panel.add(no_gradient); //gradientGrid.add(gradient_absolute); gradient_panel.add(gradient_relative); JPanel shape_panel = new JPanel(new GridLayout(3, 2)); shape_panel.setBorder(BorderFactory.createTitledBorder("Edge shape")); e_line = new JRadioButton("line"); e_line.addActionListener(this); e_line.setSelected(true); // e_bent = new JRadioButton("bent line"); // e_bent.addActionListener(this); e_wedge = new JRadioButton("wedge"); e_wedge.addActionListener(this); e_quad = new JRadioButton("quad curve"); e_quad.addActionListener(this); e_cubic = new JRadioButton("cubic curve"); e_cubic.addActionListener(this); e_ortho = new JRadioButton("orthogonal"); e_ortho.addActionListener(this); ButtonGroup bg_shape = new ButtonGroup(); bg_shape.add(e_line); // bg.add(e_bent); bg_shape.add(e_wedge); bg_shape.add(e_quad); bg_shape.add(e_ortho); bg_shape.add(e_cubic); shape_panel.add(e_line); // shape_panel.add(e_bent); shape_panel.add(e_wedge); shape_panel.add(e_quad); shape_panel.add(e_cubic); shape_panel.add(e_ortho); fill_edges = new JCheckBox("fill edge shapes"); fill_edges.setSelected(false); fill_edges.addActionListener(this); shape_panel.add(fill_edges); shape_panel.setOpaque(true); e_color = new JCheckBox("highlight edge weights"); e_color.addActionListener(this); e_labels = new JCheckBox("show edge weight values"); e_labels.addActionListener(this); e_uarrow_pred = new JCheckBox("undirected"); e_uarrow_pred.addActionListener(this); e_darrow_pred = new JCheckBox("directed"); e_darrow_pred.addActionListener(this); e_darrow_pred.setSelected(true); e_arrow_centered = new JCheckBox("centered"); e_arrow_centered.addActionListener(this); JPanel arrow_panel = new JPanel(new GridLayout(1, 0)); arrow_panel.setBorder(BorderFactory.createTitledBorder("Show arrows")); arrow_panel.add(e_uarrow_pred); arrow_panel.add(e_darrow_pred); arrow_panel.add(e_arrow_centered); e_show_d = new JCheckBox("directed"); e_show_d.addActionListener(this); e_show_d.setSelected(true); e_show_u = new JCheckBox("undirected"); e_show_u.addActionListener(this); e_show_u.setSelected(true); JPanel show_edge_panel = new JPanel(new GridLayout(1, 0)); show_edge_panel.setBorder(BorderFactory.createTitledBorder("Show edges")); show_edge_panel.add(e_show_u); show_edge_panel.add(e_show_d); shape_panel.setAlignmentX(Component.LEFT_ALIGNMENT); edge_panel.add(shape_panel); gradient_panel.setAlignmentX(Component.LEFT_ALIGNMENT); edge_panel.add(gradient_panel); show_edge_panel.setAlignmentX(Component.LEFT_ALIGNMENT); edge_panel.add(show_edge_panel); arrow_panel.setAlignmentX(Component.LEFT_ALIGNMENT); edge_panel.add(arrow_panel); e_color.setAlignmentX(Component.LEFT_ALIGNMENT); edge_panel.add(e_color); e_labels.setAlignmentX(Component.LEFT_ALIGNMENT); edge_panel.add(e_labels); // set up zoom controls zoom_at_mouse = new JCheckBox("<html><center>zoom at mouse<p>(wheel only)</center></html>"); zoom_at_mouse.addActionListener(this); zoom_at_mouse.setSelected(true); final ScalingControl scaler = new CrossoverScalingControl(); JButton plus = new JButton("+"); plus.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { scaler.scale(vv, 1.1f, vv.getCenter()); } }); JButton minus = new JButton("-"); minus.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { scaler.scale(vv, 1 / 1.1f, vv.getCenter()); } }); JPanel zoomPanel = new JPanel(); zoomPanel.setBorder(BorderFactory.createTitledBorder("Zoom")); plus.setAlignmentX(Component.CENTER_ALIGNMENT); zoomPanel.add(plus); minus.setAlignmentX(Component.CENTER_ALIGNMENT); zoomPanel.add(minus); zoom_at_mouse.setAlignmentX(Component.CENTER_ALIGNMENT); zoomPanel.add(zoom_at_mouse); JPanel fontPanel = new JPanel(); // add font and zoom controls to center panel font = new JCheckBox("bold text"); font.addActionListener(this); font.setAlignmentX(Component.CENTER_ALIGNMENT); fontPanel.add(font); both_panel.add(zoomPanel); both_panel.add(fontPanel); JComboBox modeBox = gm.getModeComboBox(); modeBox.setAlignmentX(Component.CENTER_ALIGNMENT); JPanel modePanel = new JPanel(new BorderLayout()) { public Dimension getMaximumSize() { return getPreferredSize(); } }; modePanel.setBorder(BorderFactory.createTitledBorder("Mouse Mode")); modePanel.add(modeBox); JPanel comboGrid = new JPanel(new GridLayout(0, 1)); comboGrid.add(modePanel); fontPanel.add(comboGrid); JComboBox cb = new JComboBox(); cb.addItem(Renderer.VertexLabel.Position.N); cb.addItem(Renderer.VertexLabel.Position.NE); cb.addItem(Renderer.VertexLabel.Position.E); cb.addItem(Renderer.VertexLabel.Position.SE); cb.addItem(Renderer.VertexLabel.Position.S); cb.addItem(Renderer.VertexLabel.Position.SW); cb.addItem(Renderer.VertexLabel.Position.W); cb.addItem(Renderer.VertexLabel.Position.NW); cb.addItem(Renderer.VertexLabel.Position.N); cb.addItem(Renderer.VertexLabel.Position.CNTR); cb.addItem(Renderer.VertexLabel.Position.AUTO); cb.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { Renderer.VertexLabel.Position position = (Renderer.VertexLabel.Position) e.getItem(); vv.getRenderer().getVertexLabelRenderer().setPosition(position); vv.repaint(); } }); cb.setSelectedItem(Renderer.VertexLabel.Position.SE); JPanel positionPanel = new JPanel(); positionPanel.setBorder(BorderFactory.createTitledBorder("Label Position")); positionPanel.add(cb); comboGrid.add(positionPanel); }
From source file:de.unikassel.jung.PluggableRendererDemo.java
/** * @param jp//from w w w .ja v a2 s . com * panel to which controls will be added */ @SuppressWarnings("serial") protected void addBottomControls(final JPanel jp) { final JPanel control_panel = new JPanel(); jp.add(control_panel, BorderLayout.EAST); control_panel.setLayout(new BorderLayout()); final Box vertex_panel = Box.createVerticalBox(); vertex_panel.setBorder(BorderFactory.createTitledBorder("Vertices")); final Box edge_panel = Box.createVerticalBox(); edge_panel.setBorder(BorderFactory.createTitledBorder("Edges")); final Box both_panel = Box.createVerticalBox(); control_panel.add(vertex_panel, BorderLayout.NORTH); control_panel.add(edge_panel, BorderLayout.SOUTH); control_panel.add(both_panel, BorderLayout.CENTER); // set up vertex controls v_color = new JCheckBox("seed highlight"); v_color.addActionListener(this); v_stroke = new JCheckBox("stroke highlight on selection"); v_stroke.addActionListener(this); v_labels = new JCheckBox("show voltage values"); v_labels.addActionListener(this); v_shape = new JCheckBox("shape by degree"); v_shape.addActionListener(this); v_size = new JCheckBox("size by voltage"); v_size.addActionListener(this); v_size.setSelected(true); v_aspect = new JCheckBox("stretch by degree ratio"); v_aspect.addActionListener(this); v_small = new JCheckBox("filter when degree < " + VertexDisplayPredicate.MIN_DEGREE); v_small.addActionListener(this); vertex_panel.add(v_color); vertex_panel.add(v_stroke); vertex_panel.add(v_labels); vertex_panel.add(v_shape); vertex_panel.add(v_size); vertex_panel.add(v_aspect); vertex_panel.add(v_small); // set up edge controls JPanel gradient_panel = new JPanel(new GridLayout(1, 0)); gradient_panel.setBorder(BorderFactory.createTitledBorder("Edge paint")); no_gradient = new JRadioButton("Solid color"); no_gradient.addActionListener(this); no_gradient.setSelected(true); // gradient_absolute = new JRadioButton("Absolute gradient"); // gradient_absolute.addActionListener(this); gradient_relative = new JRadioButton("Gradient"); gradient_relative.addActionListener(this); ButtonGroup bg_grad = new ButtonGroup(); bg_grad.add(no_gradient); bg_grad.add(gradient_relative); // bg_grad.add(gradient_absolute); gradient_panel.add(no_gradient); // gradientGrid.add(gradient_absolute); gradient_panel.add(gradient_relative); JPanel shape_panel = new JPanel(new GridLayout(3, 2)); shape_panel.setBorder(BorderFactory.createTitledBorder("Edge shape")); e_line = new JRadioButton("line"); e_line.addActionListener(this); e_line.setSelected(true); // e_bent = new JRadioButton("bent line"); // e_bent.addActionListener(this); e_wedge = new JRadioButton("wedge"); e_wedge.addActionListener(this); e_quad = new JRadioButton("quad curve"); e_quad.addActionListener(this); e_cubic = new JRadioButton("cubic curve"); e_cubic.addActionListener(this); e_ortho = new JRadioButton("orthogonal"); e_ortho.addActionListener(this); ButtonGroup bg_shape = new ButtonGroup(); bg_shape.add(e_line); // bg.add(e_bent); bg_shape.add(e_wedge); bg_shape.add(e_quad); bg_shape.add(e_ortho); bg_shape.add(e_cubic); shape_panel.add(e_line); // shape_panel.add(e_bent); shape_panel.add(e_wedge); shape_panel.add(e_quad); shape_panel.add(e_cubic); shape_panel.add(e_ortho); fill_edges = new JCheckBox("fill edge shapes"); fill_edges.setSelected(false); fill_edges.addActionListener(this); shape_panel.add(fill_edges); shape_panel.setOpaque(true); e_color = new JCheckBox("highlight edge weights"); e_color.addActionListener(this); e_labels = new JCheckBox("show edge weight values"); e_labels.addActionListener(this); e_uarrow_pred = new JCheckBox("undirected"); e_uarrow_pred.addActionListener(this); e_darrow_pred = new JCheckBox("directed"); e_darrow_pred.addActionListener(this); e_darrow_pred.setSelected(true); e_arrow_centered = new JCheckBox("centered"); e_arrow_centered.addActionListener(this); JPanel arrow_panel = new JPanel(new GridLayout(1, 0)); arrow_panel.setBorder(BorderFactory.createTitledBorder("Show arrows")); arrow_panel.add(e_uarrow_pred); arrow_panel.add(e_darrow_pred); arrow_panel.add(e_arrow_centered); e_show_d = new JCheckBox("directed"); e_show_d.addActionListener(this); e_show_d.setSelected(true); e_show_u = new JCheckBox("undirected"); e_show_u.addActionListener(this); e_show_u.setSelected(true); JPanel show_edge_panel = new JPanel(new GridLayout(1, 0)); show_edge_panel.setBorder(BorderFactory.createTitledBorder("Show edges")); show_edge_panel.add(e_show_u); show_edge_panel.add(e_show_d); shape_panel.setAlignmentX(Component.LEFT_ALIGNMENT); edge_panel.add(shape_panel); gradient_panel.setAlignmentX(Component.LEFT_ALIGNMENT); edge_panel.add(gradient_panel); show_edge_panel.setAlignmentX(Component.LEFT_ALIGNMENT); edge_panel.add(show_edge_panel); arrow_panel.setAlignmentX(Component.LEFT_ALIGNMENT); edge_panel.add(arrow_panel); e_color.setAlignmentX(Component.LEFT_ALIGNMENT); edge_panel.add(e_color); e_labels.setAlignmentX(Component.LEFT_ALIGNMENT); edge_panel.add(e_labels); // set up zoom controls zoom_at_mouse = new JCheckBox("<html><center>zoom at mouse<p>(wheel only)</center></html>"); zoom_at_mouse.addActionListener(this); zoom_at_mouse.setSelected(true); final ScalingControl scaler = new CrossoverScalingControl(); JButton plus = new JButton("+"); plus.addActionListener(new ActionListener() { @Override public void actionPerformed(final ActionEvent e) { scaler.scale(vv, 1.1f, vv.getCenter()); } }); JButton minus = new JButton("-"); minus.addActionListener(new ActionListener() { @Override public void actionPerformed(final ActionEvent e) { scaler.scale(vv, 1 / 1.1f, vv.getCenter()); } }); JPanel zoomPanel = new JPanel(); zoomPanel.setBorder(BorderFactory.createTitledBorder("Zoom")); plus.setAlignmentX(Component.CENTER_ALIGNMENT); zoomPanel.add(plus); minus.setAlignmentX(Component.CENTER_ALIGNMENT); zoomPanel.add(minus); zoom_at_mouse.setAlignmentX(Component.CENTER_ALIGNMENT); zoomPanel.add(zoom_at_mouse); JPanel fontPanel = new JPanel(); // add font and zoom controls to center panel font = new JCheckBox("bold text"); font.addActionListener(this); font.setAlignmentX(Component.CENTER_ALIGNMENT); fontPanel.add(font); both_panel.add(zoomPanel); both_panel.add(fontPanel); JComboBox modeBox = gm.getModeComboBox(); modeBox.setAlignmentX(Component.CENTER_ALIGNMENT); JPanel modePanel = new JPanel(new BorderLayout()) { @Override public Dimension getMaximumSize() { return getPreferredSize(); } }; modePanel.setBorder(BorderFactory.createTitledBorder("Mouse Mode")); modePanel.add(modeBox); JPanel comboGrid = new JPanel(new GridLayout(0, 1)); comboGrid.add(modePanel); fontPanel.add(comboGrid); JComboBox cb = new JComboBox(); cb.addItem(Renderer.VertexLabel.Position.N); cb.addItem(Renderer.VertexLabel.Position.NE); cb.addItem(Renderer.VertexLabel.Position.E); cb.addItem(Renderer.VertexLabel.Position.SE); cb.addItem(Renderer.VertexLabel.Position.S); cb.addItem(Renderer.VertexLabel.Position.SW); cb.addItem(Renderer.VertexLabel.Position.W); cb.addItem(Renderer.VertexLabel.Position.NW); cb.addItem(Renderer.VertexLabel.Position.N); cb.addItem(Renderer.VertexLabel.Position.CNTR); cb.addItem(Renderer.VertexLabel.Position.AUTO); cb.addItemListener(new ItemListener() { @Override public void itemStateChanged(final ItemEvent e) { Renderer.VertexLabel.Position position = (Renderer.VertexLabel.Position) e.getItem(); vv.getRenderer().getVertexLabelRenderer().setPosition(position); vv.repaint(); } }); cb.setSelectedItem(Renderer.VertexLabel.Position.SE); JPanel positionPanel = new JPanel(); positionPanel.setBorder(BorderFactory.createTitledBorder("Label Position")); positionPanel.add(cb); comboGrid.add(positionPanel); }
From source file:metdemo.Finance.SHNetworks.java
/** * //from w w w . j a v a2 s . c o m * @param jp * @param usersarray * @param viphm_hashmap */ protected void addBottomControls(final JPanel jp, String[] usersarray) { // create the control panel which will hold settings and picked list final JPanel control_panel = new JPanel(); jp.add(control_panel, BorderLayout.SOUTH); control_panel.setLayout(new BorderLayout()); // create the settings panel which will hold all of the settings Box settings_box = Box.createVerticalBox(); settings_box.setBorder(BorderFactory.createTitledBorder("Display Settings")); control_panel.add(settings_box, BorderLayout.NORTH); JPanel settings_panel = new JPanel(new FlowLayout(FlowLayout.LEFT, 10, 10)); // add the zoom controls to the settings panel JButton plus = new JButton("+"); plus.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // call listener in GraphMouse instead of manipulating vv scale // directly // this is so the crossover from zoom to scale works with the // buttons // as well as with the mouse wheel Dimension d = m_visualizationview.getSize(); m_graphmouse.mouseWheelMoved( new MouseWheelEvent(m_visualizationview, MouseEvent.MOUSE_WHEEL, System.currentTimeMillis(), 0, d.width / 2, d.height / 2, 1, false, MouseWheelEvent.WHEEL_UNIT_SCROLL, 1, 1)); } }); JButton minus = new JButton(" - "); minus.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // call listener in GraphMouse instead of manipulating vv scale // directly // this is so the crossover from zoom to scale works with the // buttons // as well as with the mouse wheel Dimension d = m_visualizationview.getSize(); m_graphmouse.mouseWheelMoved( new MouseWheelEvent(m_visualizationview, MouseEvent.MOUSE_WHEEL, System.currentTimeMillis(), 0, d.width / 2, d.height / 2, 1, false, MouseWheelEvent.WHEEL_UNIT_SCROLL, 1, -1)); } }); Box zoomPanel = Box.createHorizontalBox(); zoomPanel.setBorder(BorderFactory.createTitledBorder("Zoom")); minus.setAlignmentX(Component.LEFT_ALIGNMENT); plus.setAlignmentX(Component.RIGHT_ALIGNMENT); zoomPanel.add(minus); zoomPanel.add(plus); settings_panel.add(zoomPanel); // add the mouse mode combo box to the settings panel JComboBox modeBox = m_graphmouse.getModeComboBox(); modeBox.setAlignmentX(Component.CENTER_ALIGNMENT); m_graphmouse.setMode(ModalGraphMouse.Mode.PICKING); JPanel modePanel = new JPanel(new BorderLayout()) { public Dimension getMaximumSize() { return getPreferredSize(); } }; modePanel.setBorder(BorderFactory.createTitledBorder("Mouse Mode")); modePanel.add(modeBox); settings_panel.add(modePanel); // add the display type combo box to the settings panel String[] layoutTypeStrings = { "OrgChart Layout", "FR Layout" }; layoutTypeBox = new JComboBox(layoutTypeStrings); layoutTypeBox.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (layoutTypeBox.getSelectedIndex() == 0) moveVertices();//viphm_hashmap); else m_visualizationview.restart(); } }); layoutTypeBox.setAlignmentX(Component.CENTER_ALIGNMENT); JPanel displayTypePanel = new JPanel(new BorderLayout()) { public Dimension getMaximumSize() { return getPreferredSize(); } }; displayTypePanel.setBorder(BorderFactory.createTitledBorder("Display Type")); displayTypePanel.add(layoutTypeBox); settings_panel.add(displayTypePanel); // add user search to the panel - SHLOMO JPanel searchPanel = new JPanel(new BorderLayout()) { public Dimension getMaximumSize() { return getPreferredSize(); } }; // take the users and organize it sorted /* * ArrayList<String> ta = new ArrayList<String>(userlist); String [] * usersarray = (String[]) ta.toArray(new String[ta.size()]); */Arrays.sort(usersarray); usercombolist = new JComboBox(usersarray); usercombolist.insertItemAt("Anyone", 0); usercombolist.setSelectedIndex(0);// show only anyone choice // lets add all current users to the list searchPanel.setBorder(BorderFactory.createTitledBorder("Search User")); searchPanel.add(usercombolist); //add a check box to show not show labels on all vertices m_showLabels = new JCheckBox("Show name?", false); settings_panel.add(m_showLabels); settings_panel.add(searchPanel); usercombolist.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // will need to react to the choice list if (usercombolist.getSelectedIndex() == 0) { // might have to reset something in case they move back PickedState picked_state = m_visualizationview.getPickedState(); picked_state.clearPickedVertices(); return; } String username = (String) usercombolist.getSelectedItem(); for (Iterator walker = m_layout.getVertexIterator(); walker.hasNext();) { VIPVertex V = (VIPVertex) walker.next(); // Integer indexNum = (Integer)index.getNumber(V); String seeName = V.getAcct();// accounts_arraylist.get(indexNum); if (username.equals(seeName)) { PickedState picked_state = m_visualizationview.getPickedState(); picked_state.clearPickedVertices(); picked_state.pick(V, true); /* * int x= (int)m_layout.getX(V); int y= * (int)m_layout.getY(V); //lets trigger the event * m_graphmouse.mousePressed(new * MouseEvent(m_visualizationview,MouseEvent.MOUSE_CLICKED,System.currentTimeMillis(),0,x,y,2,false)); */return; } } } }); // add the settings panel to the settings box settings_box.add(settings_panel); // add the vip table to the control panel SortTableModel model = new SortTableModel(); model.addColumn("Account"); model.addColumn("ResponseScore"); model.addColumn("SocialScore"); m_timeTable = new JTable(model); model.addMouseListenerToHeaderInTable(m_timeTable); m_timeTable.setRowSelectionAllowed(true); m_timeTable.setColumnSelectionAllowed(false); m_timeTable.getTableHeader().setReorderingAllowed(false); m_timeTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); m_timeTable.setDefaultRenderer(model.getColumnClass(1), md5Renderer); tablePane = new JScrollPane(m_timeTable); tablePane.setPreferredSize(new Dimension(300, 150)); control_panel.add(tablePane, BorderLayout.SOUTH); }
From source file:ffx.ui.ModelingPanel.java
private void loadCommand() { synchronized (this) { // Force Field X Command Element command;// www .j a v a 2 s .co m // Command Options NodeList options; Element option; // Option Values NodeList values; Element value; // Options may be Conditional based on previous Option values (not // always supplied) NodeList conditionalList; Element conditional; // JobPanel GUI Components that change based on command JPanel optionPanel; // Clear the previous components commandPanel.removeAll(); optionsTabbedPane.removeAll(); conditionals.clear(); String currentCommand = (String) currentCommandBox.getSelectedItem(); if (currentCommand == null) { commandPanel.validate(); commandPanel.repaint(); return; } command = null; for (int i = 0; i < commandList.getLength(); i++) { command = (Element) commandList.item(i); String name = command.getAttribute("name"); if (name.equalsIgnoreCase(currentCommand)) { break; } } int div = splitPane.getDividerLocation(); descriptTextArea.setText(currentCommand.toUpperCase() + ": " + command.getAttribute("description")); splitPane.setBottomComponent(descriptScrollPane); splitPane.setDividerLocation(div); // The "action" tells Force Field X what to do when the // command finishes commandActions = command.getAttribute("action").trim(); // The "fileType" specifies what file types this command can execute // on String string = command.getAttribute("fileType").trim(); String[] types = string.split(" +"); commandFileTypes.clear(); for (String type : types) { if (type.contains("XYZ")) { commandFileTypes.add(FileType.XYZ); } if (type.contains("INT")) { commandFileTypes.add(FileType.INT); } if (type.contains("ARC")) { commandFileTypes.add(FileType.ARC); } if (type.contains("PDB")) { commandFileTypes.add(FileType.PDB); } if (type.contains("ANY")) { commandFileTypes.add(FileType.ANY); } } // Determine what options are available for this command options = command.getElementsByTagName("Option"); int length = options.getLength(); for (int i = 0; i < length; i++) { // This Option will be enabled (isEnabled = true) unless a // Conditional disables it boolean isEnabled = true; option = (Element) options.item(i); conditionalList = option.getElementsByTagName("Conditional"); /* * Currently, there can only be 0 or 1 Conditionals per Option * There are three types of Conditionals implemented. 1.) * Conditional on a previous Option, this option may be * available 2.) Conditional on input for this option, a * sub-option may be available 3.) Conditional on the presence * of keywords, this option may be available */ if (conditionalList != null) { conditional = (Element) conditionalList.item(0); } else { conditional = null; } // Get the command line flag String flag = option.getAttribute("flag").trim(); // Get the description String optionDescript = option.getAttribute("description"); JTextArea optionTextArea = new JTextArea(" " + optionDescript.trim()); optionTextArea.setEditable(false); optionTextArea.setLineWrap(true); optionTextArea.setWrapStyleWord(true); optionTextArea.setBorder(etchedBorder); // Get the default for this Option (if one exists) String defaultOption = option.getAttribute("default"); // Option Panel optionPanel = new JPanel(new BorderLayout()); optionPanel.add(optionTextArea, BorderLayout.NORTH); String swing = option.getAttribute("gui"); JPanel optionValuesPanel = new JPanel(new FlowLayout()); optionValuesPanel.setBorder(etchedBorder); ButtonGroup bg = null; if (swing.equalsIgnoreCase("CHECKBOXES")) { // CHECKBOXES allows selection of 1 or more values from a // predefined set (Analyze, for example) values = option.getElementsByTagName("Value"); for (int j = 0; j < values.getLength(); j++) { value = (Element) values.item(j); JCheckBox jcb = new JCheckBox(value.getAttribute("name")); jcb.addMouseListener(this); jcb.setName(flag); if (defaultOption != null && jcb.getActionCommand().equalsIgnoreCase(defaultOption)) { jcb.setSelected(true); } optionValuesPanel.add(jcb); } } else if (swing.equalsIgnoreCase("TEXTFIELD")) { // TEXTFIELD takes an arbitrary String as input JTextField jtf = new JTextField(20); jtf.addMouseListener(this); jtf.setName(flag); if (defaultOption != null && defaultOption.equals("ATOMS")) { FFXSystem sys = mainPanel.getHierarchy().getActive(); if (sys != null) { jtf.setText("" + sys.getAtomList().size()); } } else if (defaultOption != null) { jtf.setText(defaultOption); } optionValuesPanel.add(jtf); } else if (swing.equalsIgnoreCase("RADIOBUTTONS")) { // RADIOBUTTONS allows one choice from a set of predifined // values bg = new ButtonGroup(); values = option.getElementsByTagName("Value"); for (int j = 0; j < values.getLength(); j++) { value = (Element) values.item(j); JRadioButton jrb = new JRadioButton(value.getAttribute("name")); jrb.addMouseListener(this); jrb.setName(flag); bg.add(jrb); if (defaultOption != null && jrb.getActionCommand().equalsIgnoreCase(defaultOption)) { jrb.setSelected(true); } optionValuesPanel.add(jrb); } } else if (swing.equalsIgnoreCase("PROTEIN")) { // Protein allows selection of amino acids for the protein // builder optionValuesPanel.setLayout(new BoxLayout(optionValuesPanel, BoxLayout.Y_AXIS)); optionValuesPanel.add(Box.createRigidArea(new Dimension(0, 5))); optionValuesPanel.add(getAminoAcidPanel()); optionValuesPanel.add(Box.createRigidArea(new Dimension(0, 5))); acidComboBox.removeAllItems(); JButton add = new JButton("Edit"); add.setActionCommand("PROTEIN"); add.addActionListener(this); add.setAlignmentX(Button.CENTER_ALIGNMENT); JPanel comboPanel = new JPanel(new FlowLayout(FlowLayout.CENTER)); comboPanel.add(acidTextField); comboPanel.add(add); optionValuesPanel.add(comboPanel); optionValuesPanel.add(Box.createRigidArea(new Dimension(0, 5))); JButton remove = new JButton("Remove"); add.setMinimumSize(remove.getPreferredSize()); add.setPreferredSize(remove.getPreferredSize()); remove.setActionCommand("PROTEIN"); remove.addActionListener(this); remove.setAlignmentX(Button.CENTER_ALIGNMENT); comboPanel = new JPanel(new FlowLayout(FlowLayout.CENTER)); comboPanel.add(acidComboBox); comboPanel.add(remove); optionValuesPanel.add(comboPanel); optionValuesPanel.add(Box.createRigidArea(new Dimension(0, 5))); optionValuesPanel.add(acidScrollPane); optionValuesPanel.add(Box.createRigidArea(new Dimension(0, 5))); JButton reset = new JButton("Reset"); reset.setActionCommand("PROTEIN"); reset.addActionListener(this); reset.setAlignmentX(Button.CENTER_ALIGNMENT); optionValuesPanel.add(reset); optionValuesPanel.add(Box.createRigidArea(new Dimension(0, 5))); acidTextArea.setText(""); acidTextField.setText(""); } else if (swing.equalsIgnoreCase("NUCLEIC")) { // Nucleic allows selection of nucleic acids for the nucleic // acid builder optionValuesPanel.setLayout(new BoxLayout(optionValuesPanel, BoxLayout.Y_AXIS)); optionValuesPanel.add(Box.createRigidArea(new Dimension(0, 5))); optionValuesPanel.add(getNucleicAcidPanel()); optionValuesPanel.add(Box.createRigidArea(new Dimension(0, 5))); acidComboBox.removeAllItems(); JButton add = new JButton("Edit"); add.setActionCommand("NUCLEIC"); add.addActionListener(this); add.setAlignmentX(Button.CENTER_ALIGNMENT); JPanel comboPanel = new JPanel(new FlowLayout(FlowLayout.CENTER)); comboPanel.add(acidTextField); comboPanel.add(add); optionValuesPanel.add(comboPanel); optionValuesPanel.add(Box.createRigidArea(new Dimension(0, 5))); JButton remove = new JButton("Remove"); add.setMinimumSize(remove.getPreferredSize()); add.setPreferredSize(remove.getPreferredSize()); remove.setActionCommand("NUCLEIC"); remove.addActionListener(this); remove.setAlignmentX(Button.CENTER_ALIGNMENT); comboPanel = new JPanel(new FlowLayout(FlowLayout.CENTER)); comboPanel.add(acidComboBox); comboPanel.add(remove); optionValuesPanel.add(comboPanel); optionValuesPanel.add(Box.createRigidArea(new Dimension(0, 5))); optionValuesPanel.add(acidScrollPane); optionValuesPanel.add(Box.createRigidArea(new Dimension(0, 5))); JButton button = new JButton("Reset"); button.setActionCommand("NUCLEIC"); button.addActionListener(this); button.setAlignmentX(Button.CENTER_ALIGNMENT); optionValuesPanel.add(button); optionValuesPanel.add(Box.createRigidArea(new Dimension(0, 5))); acidTextArea.setText(""); acidTextField.setText(""); } else if (swing.equalsIgnoreCase("SYSTEMS")) { // SYSTEMS allows selection of an open system JComboBox<FFXSystem> jcb = new JComboBox<>(mainPanel.getHierarchy().getNonActiveSystems()); jcb.setSize(jcb.getMaximumSize()); jcb.addActionListener(this); optionValuesPanel.add(jcb); } // Set up a Conditional for this Option if (conditional != null) { isEnabled = false; String conditionalName = conditional.getAttribute("name"); String conditionalValues = conditional.getAttribute("value"); String cDescription = conditional.getAttribute("description"); String cpostProcess = conditional.getAttribute("postProcess"); if (conditionalName.toUpperCase().startsWith("KEYWORD")) { optionPanel.setName(conditionalName); String keywords[] = conditionalValues.split(" +"); if (activeSystem != null) { Hashtable<String, Keyword> systemKeywords = activeSystem.getKeywords(); for (String key : keywords) { if (systemKeywords.containsKey(key.toUpperCase())) { isEnabled = true; } } } } else if (conditionalName.toUpperCase().startsWith("VALUE")) { isEnabled = true; // Add listeners to the values of this option so // the conditional options can be disabled/enabled. for (int j = 0; j < optionValuesPanel.getComponentCount(); j++) { JToggleButton jtb = (JToggleButton) optionValuesPanel.getComponent(j); jtb.addActionListener(this); jtb.setActionCommand("Conditional"); } JPanel condpanel = new JPanel(); condpanel.setBorder(etchedBorder); JLabel condlabel = new JLabel(cDescription); condlabel.setEnabled(false); condlabel.setName(conditionalValues); JTextField condtext = new JTextField(10); condlabel.setLabelFor(condtext); if (cpostProcess != null) { condtext.setName(cpostProcess); } condtext.setEnabled(false); condpanel.add(condlabel); condpanel.add(condtext); conditionals.add(condlabel); optionPanel.add(condpanel, BorderLayout.SOUTH); } else if (conditionalName.toUpperCase().startsWith("REFLECTION")) { String[] condModifiers; if (conditionalValues.equalsIgnoreCase("AltLoc")) { condModifiers = activeSystem.getAltLocations(); if (condModifiers != null && condModifiers.length > 1) { isEnabled = true; bg = new ButtonGroup(); for (int j = 0; j < condModifiers.length; j++) { JRadioButton jrbmi = new JRadioButton(condModifiers[j]); jrbmi.addMouseListener(this); bg.add(jrbmi); optionValuesPanel.add(jrbmi); if (j == 0) { jrbmi.setSelected(true); } } } } else if (conditionalValues.equalsIgnoreCase("Chains")) { condModifiers = activeSystem.getChainNames(); if (condModifiers != null && condModifiers.length > 0) { isEnabled = true; for (int j = 0; j < condModifiers.length; j++) { JRadioButton jrbmi = new JRadioButton(condModifiers[j]); jrbmi.addMouseListener(this); bg.add(jrbmi); optionValuesPanel.add(jrbmi, j); } } } } } optionPanel.add(optionValuesPanel, BorderLayout.CENTER); optionPanel.setPreferredSize(optionPanel.getPreferredSize()); optionsTabbedPane.addTab(option.getAttribute("name"), optionPanel); optionsTabbedPane.setEnabledAt(optionsTabbedPane.getTabCount() - 1, isEnabled); } } optionsTabbedPane.setPreferredSize(optionsTabbedPane.getPreferredSize()); commandPanel.setLayout(borderLayout); commandPanel.add(optionsTabbedPane, BorderLayout.CENTER); commandPanel.validate(); commandPanel.repaint(); loadLogSettings(); statusLabel.setText(" " + createCommandInput()); }
From source file:metdemo.Finance.Pluggable.java
protected void addBottomControls(final JPanel jp) { final JPanel control_panel = new JPanel(); jp.add(control_panel, BorderLayout.SOUTH); control_panel.setLayout(new BorderLayout()); final Box vertex_panel = Box.createVerticalBox(); vertex_panel.setBorder(BorderFactory.createTitledBorder("Vertices")); final Box edge_panel = Box.createVerticalBox(); edge_panel.setBorder(BorderFactory.createTitledBorder("Edges")); final Box both_panel = Box.createVerticalBox(); control_panel.add(vertex_panel, BorderLayout.WEST); control_panel.add(edge_panel, BorderLayout.EAST); control_panel.add(both_panel, BorderLayout.CENTER); // set up vertex controls v_color = new JCheckBox("vertex seed coloring"); v_color.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { vcf.setSeedColoring(v_color.isSelected()); }/* w w w . j a v a 2 s . c o m*/ }); v_stroke = new JCheckBox("<html>vertex selection<p>stroke highlighting</html>"); v_stroke.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { vsh.setHighlight(v_stroke.isSelected()); } }); v_labels = new JCheckBox("show vertex ranks (voltages)"); v_labels.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (v_labels.isSelected()) pr.setVertexStringer(vs); else pr.setVertexStringer(vs_none); } }); v_shape = new JCheckBox("vertex degree shapes"); v_shape.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { vssa.useFunnyShapes(v_shape.isSelected()); } }); v_size = new JCheckBox("vertex voltage size"); v_size.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { vssa.setScaling(v_size.isSelected()); } }); v_aspect = new JCheckBox("vertex degree ratio stretch"); v_aspect.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { vssa.setStretching(v_aspect.isSelected()); } }); v_small = new JCheckBox("filter vertices of degree < " + VertexDisplayPredicate.MIN_DEGREE); v_small.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { show_vertex.filterSmall(v_small.isSelected()); } }); vertex_panel.add(v_color); vertex_panel.add(v_stroke); vertex_panel.add(v_labels); vertex_panel.add(v_shape); vertex_panel.add(v_size); vertex_panel.add(v_aspect); vertex_panel.add(v_small); // set up edge controls JPanel gradient_panel = new JPanel(new GridLayout(1, 0)); gradient_panel.setBorder(BorderFactory.createTitledBorder("Edge paint")); no_gradient = new JRadioButton("Solid color"); no_gradient.setSelected(true); no_gradient.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { gradient_level = GRADIENT_NONE; } }); // gradient_absolute = new JRadioButton("Absolute gradient"); // gradient_absolute.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) { gradient_level = GRADIENT_ABSOLUTE;}}); gradient_relative = new JRadioButton("Gradient"); gradient_relative.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { gradient_level = GRADIENT_RELATIVE; } }); ButtonGroup bg_grad = new ButtonGroup(); bg_grad.add(no_gradient); bg_grad.add(gradient_relative); //bg_grad.add(gradient_absolute); gradient_panel.add(no_gradient); //gradientGrid.add(gradient_absolute); gradient_panel.add(gradient_relative); JPanel shape_panel = new JPanel(new GridLayout(3, 2)); shape_panel.setBorder(BorderFactory.createTitledBorder("Edge shape")); e_line = new JRadioButton("line"); e_line.setSelected(true); e_line.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { pr.setEdgeShapeFunction(new EdgeShape.Line()); } }); // e_bent = new JRadioButton("bent line"); // e_bent.setSelected(true); e_wedge = new JRadioButton("wedge"); e_wedge.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { pr.setEdgeShapeFunction(new EdgeShape.Wedge(10)); } }); e_quad = new JRadioButton("quad curve"); e_quad.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { pr.setEdgeShapeFunction(new EdgeShape.QuadCurve()); } }); e_cubic = new JRadioButton("cubic curve"); e_cubic.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { pr.setEdgeShapeFunction(new EdgeShape.CubicCurve()); } }); ButtonGroup bg_shape = new ButtonGroup(); bg_shape.add(e_line); // bg.add(e_bent); bg_shape.add(e_wedge); bg_shape.add(e_quad); bg_shape.add(e_cubic); shape_panel.add(e_line); // shape_panel.add(e_bent); shape_panel.add(e_wedge); shape_panel.add(e_quad); shape_panel.add(e_cubic); fill_edges = new JCheckBox("fill edge shapes"); fill_edges.setSelected(false); fill_edges.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { edgePaint.useFill(fill_edges.isSelected()); } }); shape_panel.add(fill_edges); shape_panel.setOpaque(true); e_color = new JCheckBox("edge weight highlighting"); e_color.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { ewcs.setWeighted(e_color.isSelected()); } }); e_labels = new JCheckBox("show edge weights"); e_labels.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (e_labels.isSelected()) pr.setEdgeStringer(es); else pr.setEdgeStringer(es_none); } }); e_uarrow_pred = new JCheckBox("undirected"); e_uarrow_pred.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { show_arrow.showUndirected(e_uarrow_pred.isSelected()); } }); e_darrow_pred = new JCheckBox("directed"); e_darrow_pred.setSelected(true); e_darrow_pred.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { show_arrow.showDirected(e_darrow_pred.isSelected()); } }); JPanel arrow_panel = new JPanel(new GridLayout(1, 0)); arrow_panel.setBorder(BorderFactory.createTitledBorder("Show arrows")); arrow_panel.add(e_uarrow_pred); arrow_panel.add(e_darrow_pred); e_show_d = new JCheckBox("directed"); e_show_d.setSelected(true); e_show_d.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { show_edge.showDirected(e_show_d.isSelected()); } }); e_show_u = new JCheckBox("undirected"); e_show_u.setSelected(true); e_show_u.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { show_edge.showUndirected(e_show_u.isSelected()); } }); JPanel show_edge_panel = new JPanel(new GridLayout(1, 0)); show_edge_panel.setBorder(BorderFactory.createTitledBorder("Show edges")); show_edge_panel.add(e_show_u); show_edge_panel.add(e_show_d); shape_panel.setAlignmentX(Component.LEFT_ALIGNMENT); edge_panel.add(shape_panel); gradient_panel.setAlignmentX(Component.LEFT_ALIGNMENT); edge_panel.add(gradient_panel); show_edge_panel.setAlignmentX(Component.LEFT_ALIGNMENT); edge_panel.add(show_edge_panel); arrow_panel.setAlignmentX(Component.LEFT_ALIGNMENT); edge_panel.add(arrow_panel); e_color.setAlignmentX(Component.LEFT_ALIGNMENT); edge_panel.add(e_color); e_labels.setAlignmentX(Component.LEFT_ALIGNMENT); edge_panel.add(e_labels); // set up zoom controls zoom_at_mouse = new JCheckBox("<html><center>zoom at mouse<p>(wheel only)</center></html>"); zoom_at_mouse.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { gm.setZoomAtMouse(zoom_at_mouse.isSelected()); } }); JButton plus = new JButton("+"); plus.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // call listener in GraphMouse instead of manipulating vv scale directly // this is so the crossover from zoom to scale works with the buttons // as well as with the mouse wheel Dimension d = vv.getSize(); gm.mouseWheelMoved(new MouseWheelEvent(vv, MouseEvent.MOUSE_WHEEL, System.currentTimeMillis(), 0, d.width / 2, d.height / 2, 1, false, MouseWheelEvent.WHEEL_UNIT_SCROLL, 1, 1)); } }); JButton minus = new JButton("-"); minus.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // call listener in GraphMouse instead of manipulating vv scale directly // this is so the crossover from zoom to scale works with the buttons // as well as with the mouse wheel Dimension d = vv.getSize(); gm.mouseWheelMoved(new MouseWheelEvent(vv, MouseEvent.MOUSE_WHEEL, System.currentTimeMillis(), 0, d.width / 2, d.height / 2, 1, false, MouseWheelEvent.WHEEL_UNIT_SCROLL, 1, -1)); } }); Box zoomPanel = Box.createVerticalBox(); zoomPanel.setBorder(BorderFactory.createTitledBorder("Zoom")); plus.setAlignmentX(Component.CENTER_ALIGNMENT); zoomPanel.add(plus); minus.setAlignmentX(Component.CENTER_ALIGNMENT); zoomPanel.add(minus); zoom_at_mouse.setAlignmentX(Component.CENTER_ALIGNMENT); zoomPanel.add(zoom_at_mouse); // add font and zoom controls to center panel font = new JCheckBox("bold text"); font.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { ff.setBold(font.isSelected()); } }); font.setAlignmentX(Component.CENTER_ALIGNMENT); both_panel.add(zoomPanel); both_panel.add(font); JComboBox modeBox = gm.getModeComboBox(); modeBox.setAlignmentX(Component.CENTER_ALIGNMENT); JPanel modePanel = new JPanel(new BorderLayout()) { public Dimension getMaximumSize() { return getPreferredSize(); } }; modePanel.setBorder(BorderFactory.createTitledBorder("Mouse Mode")); modePanel.add(modeBox); both_panel.add(modePanel); }