/** Creates the panel with the optional components. */ private void _setupOptionsPanel(JComponent[] components) { JPanel mainButtons = new JPanel(); JPanel emptyPanel = new JPanel(); GridBagLayout gbLayout = new GridBagLayout(); GridBagConstraints c = new GridBagConstraints(); mainButtons.setLayout(gbLayout); for (JComponent b : components) { mainButtons.add(b); } mainButtons.add(emptyPanel); c.fill = GridBagConstraints.HORIZONTAL; c.anchor = GridBagConstraints.NORTH; c.gridwidth = GridBagConstraints.REMAINDER; c.weightx = 1.0; for (JComponent b : components) { gbLayout.setConstraints(b, c); } c.fill = GridBagConstraints.BOTH; c.anchor = GridBagConstraints.SOUTH; c.gridheight = GridBagConstraints.REMAINDER; c.weighty = 1.0; gbLayout.setConstraints(emptyPanel, c); _optionsPanel.add(mainButtons, BorderLayout.CENTER); }
private JPanel getUpdatePanel() { if (updatePanel == null) { updatePanel = new JPanel(new GridBagLayout()); updatePanel.setBorder(new EmptyBorder(0, 30, 0, 5)); final GridBagConstraints constraints = new GridBagConstraints(); constraints.insets = new Insets(0, 5, 5, 5); constraints.weighty = 0; constraints.weightx = 0; constraints.anchor = GridBagConstraints.NORTHWEST; constraints.gridy = 0; constraints.fill = GridBagConstraints.HORIZONTAL; constraints.gridx = 0; constraints.weightx = 0.5; updatePanel.add(minimumIntervalLabel, constraints); constraints.fill = GridBagConstraints.NONE; constraints.gridx = 1; constraints.weightx = 1; updatePanel.add(minimumIntervalTextField, constraints); constraints.insets = new Insets(0, 5, 0, 5); // we have a bottom inset in the containing layout! constraints.fill = GridBagConstraints.HORIZONTAL; constraints.gridx = 0; constraints.gridy++; constraints.weightx = 0.5; updatePanel.add(concurrentUpdatesLabel, constraints); constraints.fill = GridBagConstraints.NONE; constraints.gridx = 1; constraints.weightx = 1; updatePanel.add(concurrentUpdatesTextField, constraints); } return updatePanel; }
public void addForDisplay(CTalkativeTextPane pane, LabelPair<String, String> lp) { GridBagLayout gridbag = (GridBagLayout) getLayout(); labelPair = lp; label = new JLabel(labelPair.getSingular(), JLabel.LEFT); pane.getDocument().addDocumentListener(this); GridBagConstraints c = new GridBagConstraints(); c.gridx = 0; c.gridy = 0; c.gridwidth = 1; c.gridheight = 1; c.weightx = 0.1; c.weighty = 0.1; c.anchor = GridBagConstraints.LINE_START; c.insets = new Insets(0, 20, 0, 00); gridbag.setConstraints(pane, c); add(pane); c = new GridBagConstraints(); c.gridx = 1; c.gridy = 0; c.gridwidth = 1; c.gridheight = 1; c.weightx = 0.1; c.weighty = 0.1; c.anchor = GridBagConstraints.LINE_START; c.insets = new Insets(0, 0, 0, 20); gridbag.setConstraints(label, c); add(label); JPanel filler = new JPanel(); filler.setBackground(white); c = new GridBagConstraints(); c.gridx = 2; c.gridy = 0; c.gridwidth = 1; c.gridheight = 1; c.weightx = 0.8; c.weighty = 0.8; c.fill = GridBagConstraints.BOTH; c.anchor = GridBagConstraints.LINE_END; gridbag.setConstraints(filler, c); add(filler); filler = null; c = null; }
// For setting the gridbagconstraints for this application public static void setConstraints(GridBagConstraints c, int fill, int col, int row) { c.fill = fill; c.weightx = 1.0; c.weighty = 1.0; c.gridx = col; c.gridy = row; c.gridwidth = 1; c.gridheight = 1; Insets insets = new Insets(5, 5, 5, 5); c.insets = insets; }
protected GridBagConstraints createConstraints(int x, int y) { GridBagConstraints c = new GridBagConstraints(); c.gridx = x; c.gridy = y; c.gridwidth = 2; c.gridheight = 1; c.ipadx = 1; c.weightx = 0.5; c.weighty = 0.5; c.fill = GridBagConstraints.BOTH; c.anchor = GridBagConstraints.CENTER; return c; }
private void addGrid( JPanel p, Component co, int x, int y, int w, int fill, double wx, int anchor) { GridBagConstraints c = new GridBagConstraints(); c.gridx = x; c.gridy = y; c.gridwidth = w; c.anchor = anchor; c.weightx = wx; c.fill = fill; if (fill == GridBagConstraints.BOTH || fill == GridBagConstraints.VERTICAL) c.weighty = 1.0; c.insets = new Insets(y == 0 ? 10 : 0, GAP, GAP, GAP); p.add(co, c); }
// For setting the gridbagconstraints for this application public static void setConstraints( GridBagConstraints c, int fill, double wx, double wy, int gx, int gy, int gw, int gh, int ins) { c.fill = fill; c.weightx = (float) wx; c.weighty = (float) wy; c.gridx = gx; c.gridy = gy; c.gridwidth = gw; c.gridheight = gh; Insets insets = new Insets(ins, ins, ins, ins); c.insets = insets; }
public SyntaxTest() { JFrame frame = new JFrame(); frame.setSize(300, 300); JEditorPane editor = new JEditorPane(); DefaultSyntaxKit.initKit(); editor.setContentType("text/banking"); frame.setLayout(new GridBagLayout()); GridBagConstraints c = new GridBagConstraints(); c.weightx = 1.0; c.weighty = 1.0; c.fill = GridBagConstraints.BOTH; frame.add(editor, c); frame.pack(); frame.setVisible(true); }
private static JPanel createTextFieldAndListPanel( String label, JTextField textField, JList list) { GridBagLayout layout = new GridBagLayout(); JPanel panel = new JPanel(layout); GridBagConstraints cons = new GridBagConstraints(); cons.gridx = cons.gridy = 0; cons.gridwidth = cons.gridheight = 1; cons.fill = GridBagConstraints.BOTH; cons.weightx = 1.0f; JLabel _label = new JLabel(jEdit.getProperty(label)); layout.setConstraints(_label, cons); panel.add(_label); cons.gridy = 1; Component vs = Box.createVerticalStrut(6); layout.setConstraints(vs, cons); panel.add(vs); cons.gridy = 2; layout.setConstraints(textField, cons); panel.add(textField); cons.gridy = 3; vs = Box.createVerticalStrut(6); layout.setConstraints(vs, cons); panel.add(vs); cons.gridy = 4; cons.gridheight = GridBagConstraints.REMAINDER; cons.weighty = 1.0f; JScrollPane scroller = new JScrollPane(list); layout.setConstraints(scroller, cons); panel.add(scroller); return panel; }
/* public void addMiniChart(Plugin p){ components.add(p); rebuild(); } public void removeMiniChart(Plugin p){ components.remove(p); rebuild(); } */ public void rebuild() { // remove everything from main panel mainpanel.removeAll(); GridBagLayout gbl = new GridBagLayout(); GridBagConstraints gbc = new GridBagConstraints(); mainpanel.setLayout(gbl); gbc.anchor = gbc.NORTHWEST; gbc.fill = gbc.BOTH; gbc.weightx = 1; gbc.gridx = 0; int i = 0; // add chart gbc.weighty = 1; gbc.gridy = i; gbl.setConstraints(chartPanel, gbc); mainpanel.add(chartPanel); // add all other plugins/components validate(); }
public WizStepManyTextFields(Wizard w, String instr, Vector strings) { // store wizard? _instructions.setText(instr); _instructions.setWrapStyleWord(true); _instructions.setEditable(false); _instructions.setBorder(null); _instructions.setBackground(_mainPanel.getBackground()); _mainPanel.setBorder(new EtchedBorder()); GridBagLayout gb = new GridBagLayout(); _mainPanel.setLayout(gb); GridBagConstraints c = new GridBagConstraints(); c.ipadx = 3; c.ipady = 3; c.weightx = 0.0; c.weighty = 0.0; c.anchor = GridBagConstraints.EAST; JLabel image = new JLabel(""); // image.setMargin(new Insets(0, 0, 0, 0)); image.setIcon(WIZ_ICON); image.setBorder(null); c.gridx = 0; c.gridheight = GridBagConstraints.REMAINDER; c.gridy = 0; c.anchor = GridBagConstraints.NORTH; gb.setConstraints(image, c); _mainPanel.add(image); c.weightx = 0.0; c.gridx = 2; c.gridheight = 1; c.gridwidth = 3; c.gridy = 0; c.fill = GridBagConstraints.NONE; gb.setConstraints(_instructions, c); _mainPanel.add(_instructions); c.gridx = 1; c.gridy = 1; c.weightx = 0.0; c.gridwidth = 1; c.fill = GridBagConstraints.NONE; SpacerPanel spacer = new SpacerPanel(); gb.setConstraints(spacer, c); _mainPanel.add(spacer); c.gridx = 2; c.weightx = 1.0; c.anchor = GridBagConstraints.WEST; c.gridwidth = 1; int size = strings.size(); for (int i = 0; i < size; i++) { c.gridy = 2 + i; String s = (String) strings.elementAt(i); JTextField tf = new JTextField(s, 50); tf.setMinimumSize(new Dimension(200, 20)); tf.getDocument().addDocumentListener(this); _fields.addElement(tf); gb.setConstraints(tf, c); _mainPanel.add(tf); } c.gridx = 1; c.gridy = 3 + strings.size(); c.weightx = 0.0; c.gridwidth = 1; c.fill = GridBagConstraints.NONE; SpacerPanel spacer2 = new SpacerPanel(); gb.setConstraints(spacer2, c); _mainPanel.add(spacer2); }
/** * Creates the appropriate object to represent <code>msg</code> and places it into <code>container * </code>. If <code>msg</code> is an instance of Component, it is added directly, if it is an * Icon, a JLabel is created to represent it, otherwise a JLabel is created for the string, if * <code>d</code> is an Object[], this method will be recursively invoked for the children. <code> * internallyCreated</code> is true if Objc is an instance of Component and was created internally * by this method (this is used to correctly set hasCustomComponents only if !internallyCreated). */ protected void addMessageComponents( Container container, GridBagConstraints cons, Object msg, int maxll, boolean internallyCreated) { if (msg == null) { return; } if (msg instanceof Component) { // To workaround problem where Gridbad will set child // to its minimum size if its preferred size will not fit // within allocated cells if (msg instanceof JScrollPane || msg instanceof JPanel) { cons.fill = GridBagConstraints.BOTH; cons.weighty = 1; } else { cons.fill = GridBagConstraints.HORIZONTAL; } cons.weightx = 1; container.add((Component) msg, cons); cons.weightx = 0; cons.weighty = 0; cons.fill = GridBagConstraints.NONE; cons.gridy++; if (!internallyCreated) { hasCustomComponents = true; } } else if (msg instanceof Object[]) { Object[] msgs = (Object[]) msg; for (Object o : msgs) { addMessageComponents(container, cons, o, maxll, false); } } else if (msg instanceof Icon) { JLabel label = new JLabel((Icon) msg, SwingConstants.CENTER); configureMessageLabel(label); addMessageComponents(container, cons, label, maxll, true); } else { String s = msg.toString(); int len = s.length(); if (len <= 0) { return; } int nl; int nll = 0; if ((nl = s.indexOf(newline)) >= 0) { nll = newline.length(); } else if ((nl = s.indexOf("\r\n")) >= 0) { nll = 2; } else if ((nl = s.indexOf('\n')) >= 0) { nll = 1; } if (nl >= 0) { // break up newlines if (nl == 0) { JPanel breakPanel = new JPanel() { public Dimension getPreferredSize() { Font f = getFont(); if (f != null) { return new Dimension(1, f.getSize() + 2); } return new Dimension(0, 0); } }; breakPanel.setName("OptionPane.break"); addMessageComponents(container, cons, breakPanel, maxll, true); } else { addMessageComponents(container, cons, s.substring(0, nl), maxll, false); } addMessageComponents(container, cons, s.substring(nl + nll), maxll, false); } else if (len > maxll) { Container c = Box.createVerticalBox(); c.setName("OptionPane.verticalBox"); burstStringInto(c, s, maxll); addMessageComponents(container, cons, c, maxll, true); } else { JLabel label; label = new JLabel(s, JLabel.LEADING); label.setName("OptionPane.label"); configureMessageLabel(label); addMessageComponents(container, cons, label, maxll, true); } } }
/** * The only constructor of the review dialog, which initialises the dates, sets the outer layout, * runs the analyser, creates rows for the results, and displays the window. * * @param main A link to the parent component. * @param config A link to the configuration object. */ ReviewDialog(Main main, Config config) { super(main, "Review & Save"); this.main = main; this.config = config; // layout date components GridBagLayout gbl = new GridBagLayout(); setLayout(gbl); GridBagConstraints gbc = new GridBagConstraints(); gbc.fill = GridBagConstraints.BOTH; gbc.insets = new Insets(0, 0, 5, 0); gbc.ipadx = 10; gbc.gridx = 0; gbc.gridy = 0; gbl.setConstraints(yearLabel, gbc); gbc.gridx = 1; gbl.setConstraints(yearCB, gbc); gbc.gridx = 0; gbc.gridy = 1; gbl.setConstraints(weekLabel, gbc); gbc.gridx = 1; gbl.setConstraints(weekCB, gbc); gbc.gridx = 0; gbc.gridy = 2; gbl.setConstraints(fromLabel, gbc); gbc.weightx = 1; gbc.gridx = 1; gbl.setConstraints(fromDate, gbc); gbc.insets = new Insets(0, 0, 0, 0); gbc.weightx = 0; gbc.gridx = 0; gbc.gridy = 3; gbl.setConstraints(toLabel, gbc); gbc.weightx = 1; gbc.gridx = 1; gbl.setConstraints(toDate, gbc); gbc.gridx = 0; gbc.gridy = 4; gbc.gridwidth = 2; gbc.insets = new Insets(10, 5, 10, 5); gbc.weighty = 1; JScrollPane scrollReviewPanel = new JScrollPane(reviewPanel); gbl.setConstraints(scrollReviewPanel, gbc); gbc.insets = new Insets(0, 0, 0, 0); gbc.gridy = 5; gbc.weighty = 0; gbl.setConstraints(saveToFileButton, gbc); gbc.gridy = 6; gbl.setConstraints(copyToClipboardButton, gbc); add(yearLabel); add(yearCB); add(weekLabel); add(weekCB); add(fromLabel); add(fromDate); add(toLabel); add(toDate); add(scrollReviewPanel); add(saveToFileButton); add(copyToClipboardButton); // layout results updateYearWeekDates(); setVisible(true); setLocation(main.getLocation()); }
/** * Creates the video advanced settings. * * @return video advanced settings panel. */ private static Component createVideoAdvancedSettings() { ResourceManagementService resources = NeomediaActivator.getResources(); final DeviceConfiguration deviceConfig = mediaService.getDeviceConfiguration(); TransparentPanel centerPanel = new TransparentPanel(new GridBagLayout()); centerPanel.setMaximumSize(new Dimension(WIDTH, 150)); JButton resetDefaultsButton = new JButton(resources.getI18NString("impl.media.configform.VIDEO_RESET")); JPanel resetButtonPanel = new TransparentPanel(new FlowLayout(FlowLayout.RIGHT)); resetButtonPanel.add(resetDefaultsButton); final JPanel centerAdvancedPanel = new TransparentPanel(new BorderLayout()); centerAdvancedPanel.add(centerPanel, BorderLayout.NORTH); centerAdvancedPanel.add(resetButtonPanel, BorderLayout.SOUTH); GridBagConstraints constraints = new GridBagConstraints(); constraints.fill = GridBagConstraints.HORIZONTAL; constraints.anchor = GridBagConstraints.NORTHWEST; constraints.insets = new Insets(5, 5, 0, 0); constraints.gridx = 0; constraints.weightx = 0; constraints.weighty = 0; constraints.gridy = 0; centerPanel.add( new JLabel(resources.getI18NString("impl.media.configform.VIDEO_RESOLUTION")), constraints); constraints.gridy = 1; constraints.insets = new Insets(0, 0, 0, 0); final JCheckBox frameRateCheck = new SIPCommCheckBox(resources.getI18NString("impl.media.configform.VIDEO_FRAME_RATE")); centerPanel.add(frameRateCheck, constraints); constraints.gridy = 2; constraints.insets = new Insets(5, 5, 0, 0); centerPanel.add( new JLabel(resources.getI18NString("impl.media.configform.VIDEO_PACKETS_POLICY")), constraints); constraints.weightx = 1; constraints.gridx = 1; constraints.gridy = 0; constraints.insets = new Insets(5, 0, 0, 5); Object[] resolutionValues = new Object[DeviceConfiguration.SUPPORTED_RESOLUTIONS.length + 1]; System.arraycopy( DeviceConfiguration.SUPPORTED_RESOLUTIONS, 0, resolutionValues, 1, DeviceConfiguration.SUPPORTED_RESOLUTIONS.length); final JComboBox sizeCombo = new JComboBox(resolutionValues); sizeCombo.setRenderer(new ResolutionCellRenderer()); sizeCombo.setEditable(false); centerPanel.add(sizeCombo, constraints); // default value is 20 final JSpinner frameRate = new JSpinner(new SpinnerNumberModel(20, 5, 30, 1)); frameRate.addChangeListener( new ChangeListener() { public void stateChanged(ChangeEvent e) { deviceConfig.setFrameRate( ((SpinnerNumberModel) frameRate.getModel()).getNumber().intValue()); } }); constraints.gridy = 1; constraints.insets = new Insets(0, 0, 0, 5); centerPanel.add(frameRate, constraints); frameRateCheck.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { if (frameRateCheck.isSelected()) { deviceConfig.setFrameRate( ((SpinnerNumberModel) frameRate.getModel()).getNumber().intValue()); } else // unlimited framerate deviceConfig.setFrameRate(-1); frameRate.setEnabled(frameRateCheck.isSelected()); } }); final JSpinner videoMaxBandwidth = new JSpinner( new SpinnerNumberModel(deviceConfig.getVideoMaxBandwidth(), 1, Integer.MAX_VALUE, 1)); videoMaxBandwidth.addChangeListener( new ChangeListener() { public void stateChanged(ChangeEvent e) { deviceConfig.setVideoMaxBandwidth( ((SpinnerNumberModel) videoMaxBandwidth.getModel()).getNumber().intValue()); } }); constraints.gridx = 1; constraints.gridy = 2; constraints.insets = new Insets(0, 0, 5, 5); centerPanel.add(videoMaxBandwidth, constraints); resetDefaultsButton.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { // reset to defaults sizeCombo.setSelectedIndex(0); frameRateCheck.setSelected(false); frameRate.setEnabled(false); frameRate.setValue(20); // unlimited framerate deviceConfig.setFrameRate(-1); videoMaxBandwidth.setValue(DeviceConfiguration.DEFAULT_VIDEO_MAX_BANDWIDTH); } }); // load selected value or auto Dimension videoSize = deviceConfig.getVideoSize(); if ((videoSize.getHeight() != DeviceConfiguration.DEFAULT_VIDEO_HEIGHT) && (videoSize.getWidth() != DeviceConfiguration.DEFAULT_VIDEO_WIDTH)) sizeCombo.setSelectedItem(deviceConfig.getVideoSize()); else sizeCombo.setSelectedIndex(0); sizeCombo.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { Dimension selectedVideoSize = (Dimension) sizeCombo.getSelectedItem(); if (selectedVideoSize == null) { // the auto value, default one selectedVideoSize = new Dimension( DeviceConfiguration.DEFAULT_VIDEO_WIDTH, DeviceConfiguration.DEFAULT_VIDEO_HEIGHT); } deviceConfig.setVideoSize(selectedVideoSize); } }); frameRateCheck.setSelected( deviceConfig.getFrameRate() != DeviceConfiguration.DEFAULT_VIDEO_FRAMERATE); frameRate.setEnabled(frameRateCheck.isSelected()); if (frameRate.isEnabled()) frameRate.setValue(deviceConfig.getFrameRate()); return centerAdvancedPanel; }
/** * Creates the UI controls which are to control the details of a specific <tt>AudioSystem</tt>. * * @param audioSystem the <tt>AudioSystem</tt> for which the UI controls to control its details * are to be created * @param container the <tt>JComponent</tt> into which the UI controls which are to control the * details of the specified <tt>audioSystem</tt> are to be added */ public static void createAudioSystemControls(AudioSystem audioSystem, JComponent container) { GridBagConstraints constraints = new GridBagConstraints(); constraints.anchor = GridBagConstraints.NORTHWEST; constraints.fill = GridBagConstraints.HORIZONTAL; constraints.weighty = 0; int audioSystemFeatures = audioSystem.getFeatures(); boolean featureNotifyAndPlaybackDevices = ((audioSystemFeatures & AudioSystem.FEATURE_NOTIFY_AND_PLAYBACK_DEVICES) != 0); constraints.gridx = 0; constraints.insets = new Insets(3, 0, 3, 3); constraints.weightx = 0; constraints.gridy = 0; container.add( new JLabel(getLabelText(DeviceConfigurationComboBoxModel.AUDIO_CAPTURE)), constraints); if (featureNotifyAndPlaybackDevices) { constraints.gridy = 2; container.add( new JLabel(getLabelText(DeviceConfigurationComboBoxModel.AUDIO_PLAYBACK)), constraints); constraints.gridy = 3; container.add( new JLabel(getLabelText(DeviceConfigurationComboBoxModel.AUDIO_NOTIFY)), constraints); } constraints.gridx = 1; constraints.insets = new Insets(3, 3, 3, 0); constraints.weightx = 1; JComboBox captureCombo = null; if (featureNotifyAndPlaybackDevices) { captureCombo = new JComboBox(); captureCombo.setEditable(false); captureCombo.setModel( new DeviceConfigurationComboBoxModel( captureCombo, mediaService.getDeviceConfiguration(), DeviceConfigurationComboBoxModel.AUDIO_CAPTURE)); constraints.gridy = 0; container.add(captureCombo, constraints); } int anchor = constraints.anchor; SoundLevelIndicator capturePreview = new SoundLevelIndicator( SimpleAudioLevelListener.MIN_LEVEL, SimpleAudioLevelListener.MAX_LEVEL); constraints.anchor = GridBagConstraints.CENTER; constraints.gridy = (captureCombo == null) ? 0 : 1; container.add(capturePreview, constraints); constraints.anchor = anchor; constraints.gridy = GridBagConstraints.RELATIVE; if (featureNotifyAndPlaybackDevices) { JComboBox playbackCombo = new JComboBox(); playbackCombo.setEditable(false); playbackCombo.setModel( new DeviceConfigurationComboBoxModel( captureCombo, mediaService.getDeviceConfiguration(), DeviceConfigurationComboBoxModel.AUDIO_PLAYBACK)); container.add(playbackCombo, constraints); JComboBox notifyCombo = new JComboBox(); notifyCombo.setEditable(false); notifyCombo.setModel( new DeviceConfigurationComboBoxModel( captureCombo, mediaService.getDeviceConfiguration(), DeviceConfigurationComboBoxModel.AUDIO_NOTIFY)); container.add(notifyCombo, constraints); } if ((AudioSystem.FEATURE_ECHO_CANCELLATION & audioSystemFeatures) != 0) { final SIPCommCheckBox echoCancelCheckBox = new SIPCommCheckBox( NeomediaActivator.getResources().getI18NString("impl.media.configform.ECHOCANCEL")); /* * First set the selected one, then add the listener in order to * avoid saving the value when using the default one and only * showing to user without modification. */ echoCancelCheckBox.setSelected(mediaService.getDeviceConfiguration().isEchoCancel()); echoCancelCheckBox.addItemListener( new ItemListener() { public void itemStateChanged(ItemEvent e) { mediaService.getDeviceConfiguration().setEchoCancel(echoCancelCheckBox.isSelected()); } }); container.add(echoCancelCheckBox, constraints); } if ((AudioSystem.FEATURE_DENOISE & audioSystemFeatures) != 0) { final SIPCommCheckBox denoiseCheckBox = new SIPCommCheckBox( NeomediaActivator.getResources().getI18NString("impl.media.configform.DENOISE")); /* * First set the selected one, then add the listener in order to * avoid saving the value when using the default one and only * showing to user without modification. */ denoiseCheckBox.setSelected(mediaService.getDeviceConfiguration().isDenoise()); denoiseCheckBox.addItemListener( new ItemListener() { public void itemStateChanged(ItemEvent e) { mediaService.getDeviceConfiguration().setDenoise(denoiseCheckBox.isSelected()); } }); container.add(denoiseCheckBox, constraints); } createAudioPreview(audioSystem, captureCombo, capturePreview); }
public ExampleField(ExampleOption option) { super(option); model = new DefaultListModel(); model.addListDataListener( new ListDataListener() { @Override public void intervalAdded(ListDataEvent e) { fireChangeEvent(); } @Override public void intervalRemoved(ListDataEvent e) { fireChangeEvent(); } @Override public void contentsChanged(ListDataEvent e) { fireChangeEvent(); } }); final JList list = new JList(model) { @Override public Dimension getPreferredScrollableViewportSize() { return new Dimension(3 * CELL_SIZE, 2 * CELL_SIZE); } }; list.setLayoutOrientation(JList.HORIZONTAL_WRAP); list.setVisibleRowCount(0); list.setFixedCellHeight(CELL_SIZE); list.setFixedCellWidth(CELL_SIZE); list.setTransferHandler( new URIImportTransferHandler() { @Override public boolean canImport(TransferSupport support) { support.setShowDropLocation(false); return super.canImport(support); } @Override public boolean importData(TransferSupport support) { try { List<BufferedImage> images = new ArrayList<BufferedImage>(); for (URI u : getURIs(support)) { try { images.add(ImageIO.read(u.toURL())); } catch (IOException e) { } } addExamples(images); return true; } catch (IOException e) { return false; } catch (UnsupportedFlavorException e) { return false; } catch (URISyntaxException e) { return false; } } }); list.setCellRenderer( new DefaultListCellRenderer() { @Override public Component getListCellRendererComponent( JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); Example example = (Example) value; setHorizontalAlignment(SwingConstants.CENTER); setText(null); setIcon(example.getIcon()); setBorder(BorderFactory.createEmptyBorder()); return this; } }); JScrollPane jsp = new JScrollPane(list); jsp.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); jsp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); final JButton remove = new JButton("Remove"); remove.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { int[] indices = list.getSelectedIndices(); for (int i = indices.length - 1; i >= 0; i--) { model.remove(indices[i]); } } }); list.addListSelectionListener( new ListSelectionListener() { @Override public void valueChanged(ListSelectionEvent e) { remove.setEnabled(list.getSelectedIndex() != -1); } }); remove.setEnabled(false); panel = new JPanel(new GridBagLayout()); // Add list GridBagConstraints c = new GridBagConstraints(); c.gridx = 0; c.gridy = 0; c.weightx = 1; c.weighty = 1; c.fill = GridBagConstraints.BOTH; panel.add(jsp, c); // Add remove button c = new GridBagConstraints(); c.gridx = 0; c.anchor = GridBagConstraints.WEST; panel.add(remove, c); }
private <T extends Enum<T>> void createControls(JPanel panel, ZrtpConfigureTableModel<T> model) { ResourceManagementService resources = NeomediaActivator.getResources(); final JButton upButton = new JButton(resources.getI18NString("impl.media.configform.UP")); upButton.setOpaque(false); final JButton downButton = new JButton(resources.getI18NString("impl.media.configform.DOWN")); downButton.setOpaque(false); Container buttonBar = new TransparentPanel(new GridLayout(0, 1)); buttonBar.add(upButton); buttonBar.add(downButton); panel.setBorder(BorderFactory.createEmptyBorder(MARGIN, MARGIN, MARGIN, MARGIN)); panel.setLayout(new GridBagLayout()); final JTable table = new JTable(model.getRowCount(), 2); table.setShowGrid(false); table.setTableHeader(null); table.setModel(model); // table.setFillsViewportHeight(true); // Since 1.6 only - nicer view /* * The first column contains the check boxes which enable/disable their * associated encodings and it doesn't make sense to make it wider than * the check boxes. */ TableColumnModel tableColumnModel = table.getColumnModel(); TableColumn tableColumn = tableColumnModel.getColumn(0); tableColumn.setMaxWidth(tableColumn.getMinWidth() + 5); table.doLayout(); GridBagConstraints constraints = new GridBagConstraints(); constraints.anchor = GridBagConstraints.CENTER; constraints.fill = GridBagConstraints.BOTH; constraints.gridwidth = 1; constraints.gridx = 0; constraints.gridy = 1; constraints.weightx = 1; constraints.weighty = 1; panel.add(new JScrollPane(table), constraints); constraints.anchor = GridBagConstraints.NORTHEAST; constraints.fill = GridBagConstraints.NONE; constraints.gridwidth = 1; constraints.gridx = 1; constraints.gridy = 1; constraints.weightx = 0; constraints.weighty = 0; panel.add(buttonBar, constraints); ListSelectionListener tableSelectionListener = new ListSelectionListener() { @SuppressWarnings("unchecked") public void valueChanged(ListSelectionEvent event) { if (table.getSelectedRowCount() == 1) { int selectedRow = table.getSelectedRow(); if (selectedRow > -1) { ZrtpConfigureTableModel<T> model = (ZrtpConfigureTableModel<T>) table.getModel(); upButton.setEnabled(selectedRow > 0 && model.checkEnableUp(selectedRow)); downButton.setEnabled( selectedRow < (table.getRowCount() - 1) && model.checkEnableDown(selectedRow)); return; } } upButton.setEnabled(false); downButton.setEnabled(false); } }; table.getSelectionModel().addListSelectionListener(tableSelectionListener); TableModelListener tableListener = new TableModelListener() { @SuppressWarnings("unchecked") public void tableChanged(TableModelEvent e) { if (table.getSelectedRowCount() == 1) { int selectedRow = table.getSelectedRow(); if (selectedRow > -1) { ZrtpConfigureTableModel<T> model = (ZrtpConfigureTableModel<T>) table.getModel(); upButton.setEnabled(selectedRow > 0 && model.checkEnableUp(selectedRow)); downButton.setEnabled( selectedRow < (table.getRowCount() - 1) && model.checkEnableDown(selectedRow)); return; } } upButton.setEnabled(false); downButton.setEnabled(false); } }; table.getModel().addTableModelListener(tableListener); tableSelectionListener.valueChanged(null); ActionListener buttonListener = new ActionListener() { @SuppressWarnings("unchecked") public void actionPerformed(ActionEvent event) { Object source = event.getSource(); boolean up; if (source == upButton) up = true; else if (source == downButton) up = false; else return; int index = ((ZrtpConfigureTableModel<T>) table.getModel()) .move(table.getSelectedRow(), up, up); table.getSelectionModel().setSelectionInterval(index, index); } }; upButton.addActionListener(buttonListener); downButton.addActionListener(buttonListener); }
/** Initialize the user interface components. */ protected void initUI() throws Exception { // Setup the JInternalFrame setDefaultCloseOperation(JInternalFrame.DISPOSE_ON_CLOSE); addInternalFrameListener(new DialogListener()); // grab Frog object Frog frame = debugManager.getFrog(); // grab location and position window Dimension popupSize = getSize(); Dimension frameSize = frame.getSize(); setLocation((frameSize.width - popupSize.width) / 4, (frameSize.height - popupSize.height) / 4); // Grab TimeSeriesComp object GramComp popupComp = gramManager.getGram(popupFrame); Gram popupGram = popupComp.getGram(); // create the main panel // --------------------- // setup the scroll pane JScrollPane scrollPane = new JScrollPane( textPane, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); scrollPane.setPreferredSize(new Dimension(500, 450)); scrollPane.setMinimumSize(new Dimension(500, 300)); textPane.setEditable(false); textPane.setContentType("text/html"); // Stuff them into the main panel // ------------------------------ GridBagConstraints constraints = new GridBagConstraints(); constraints.weightx = 1.0; constraints.weighty = 1.0; constraints.fill = GridBagConstraints.BOTH; JPanel mainPanel = new JPanel(); // create the main panel mainPanel.setLayout(new GridBagLayout()); constraints.gridx = 0; constraints.gridy = 0; mainPanel.add(scrollPane, constraints); // create the button panels JPanel buttonPanel = new JPanel(new BorderLayout()); JPanel buttons = new JPanel(new BorderLayout()); // create the button panel // ----------------------- JLabel buttonLabel = new JLabel(" "); JButton cancelButton = new JButton("Cancel"); cancelButton.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { dispose(); } }); buttons.add(cancelButton, BorderLayout.EAST); buttonPanel.add(buttonLabel, BorderLayout.CENTER); buttonPanel.add(buttons, BorderLayout.EAST); // display everything JPanel contentPane = (JPanel) this.getContentPane(); contentPane.setLayout(new BorderLayout()); contentPane.add(mainPanel, BorderLayout.NORTH); contentPane.add(buttonPanel, BorderLayout.SOUTH); // Add information to textArea // --------------------------- String doc = "<html><body>"; doc = doc + "<h2><u>Periodogram</u></h2>\n"; doc = doc + "<ul>\n"; TimeSeriesComp popupTimeComp = popupGram.getTimeSeriesComp(); TimeSeries popupSeries = popupTimeComp.getSeries(); String key = seriesManager.getKey(popupTimeComp); doc = doc + "<li>The periodogram is associated with <strong>" + key + "</strong>\n"; if (popupGram.getType() == Gram.UNCLASSIFIED) { doc = doc + "<li>The periodogram is of unknown type\n" + "<li><font color=red>Warning: Possible programming error?</font>\n" + "</ul>\n"; } else if (popupGram.getType() == Gram.FOURIER) { doc = doc + "<li>The periodogram is a Fourier Transform</ul>\n"; } else if (popupGram.getType() == Gram.CHISQ) { doc = doc + "<li>The periodogram is a Chi-Squared Periodogram</ul>\n"; } // best fit period? String periodDoc = ""; if (popupGram.haveBestPeriod()) { double range[] = popupGram.getRange(); periodDoc = "<h2><u>Best Period</u></h2>\n"; periodDoc = periodDoc + "<ul>\n" + " <li> Minimum Frequency is " + range[0] + "\n" + " <li> Maximum Frequency is " + range[1] + "\n" + " <li> Maximum power at frequency of " + 1.0 / popupGram.getBestPeriod() + "\n" + " <li> This corresponds to a period of " + popupGram.getBestPeriod() + "\n</ul>\n"; } // drop document into textArea doc = doc + periodDoc + "</body></html>"; debugManager.print(" Passing HTML Document to textPane..."); debugManager.print("\n" + doc + "\n"); textPane.setText(doc); // Pack now avoiding problems with the scrollbar? pack(); }
private void initialize() { setName("NewsPanel"); setLayout(new GridBagLayout()); refreshLanguage(); // We create the components new TextComponentClipboardMenu(uploadPrioTextField, language); new TextComponentClipboardMenu(downloadPrioTextField, language); new TextComponentClipboardMenu(displayDaysTextField, language); new TextComponentClipboardMenu(downloadDaysTextField, language); new TextComponentClipboardMenu(messageBaseTextField, language); new TextComponentClipboardMenu(minimumIntervalTextField, language); new TextComponentClipboardMenu(concurrentUpdatesTextField, language); new TextComponentClipboardMenu(altEditTextField, language); // Adds all of the components final GridBagConstraints constraints = new GridBagConstraints(); constraints.fill = GridBagConstraints.NONE; constraints.anchor = GridBagConstraints.WEST; constraints.weighty = 0.0; constraints.weightx = 0; constraints.insets = new Insets(0, 5, 5, 5); constraints.gridy = 0; constraints.gridx = 0; add(displayDaysLabel, constraints); constraints.gridx = 1; add(displayDaysTextField, constraints); constraints.gridx = 0; constraints.gridy++; add(downloadDaysLabel, constraints); constraints.gridx = 1; add(downloadDaysTextField, constraints); constraints.gridx = 0; constraints.gridy++; constraints.gridwidth = 2; add(alwaysDownloadBackloadCheckBox, constraints); constraints.gridwidth = 1; constraints.gridx = 0; constraints.gridy++; add(messageBaseLabel, constraints); constraints.gridx = 1; add(messageBaseTextField, constraints); constraints.gridy++; constraints.gridx = 0; add(uploadPrioLabel, constraints); constraints.gridx = 1; add(uploadPrioTextField, constraints); constraints.gridy++; constraints.gridx = 0; add(downloadPrioLabel, constraints); constraints.gridx = 1; add(downloadPrioTextField, constraints); constraints.gridx = 0; constraints.gridwidth = 2; constraints.gridy++; add(automaticBoardUpdateCheckBox, constraints); constraints.gridy++; add(getUpdatePanel(), constraints); constraints.gridy++; add(useOneConnectionForMessagesCheckBox, constraints); constraints.gridy++; add(storeSentMessagesCheckBox, constraints); constraints.gridy++; add(silentlyRetryCheckBox, constraints); constraints.gridwidth = 1; constraints.insets = new Insets(0, 5, 0, 5); constraints.gridy++; constraints.gridx = 0; add(altEditCheckBox, constraints); constraints.gridx = 1; constraints.weightx = 1; constraints.fill = GridBagConstraints.HORIZONTAL; add(altEditTextField, constraints); constraints.weightx = 0; constraints.fill = GridBagConstraints.NONE; // glue constraints.gridy++; constraints.gridx = 0; constraints.gridwidth = 2; constraints.fill = GridBagConstraints.BOTH; constraints.weightx = 1; constraints.weighty = 1; add(new JLabel(""), constraints); // Add listeners automaticBoardUpdateCheckBox.addActionListener(listener); altEditCheckBox.addChangeListener(listener); }
/** * The consturctor Constructor instantiates all the panels, convertible value instance, and the * frame. And adds the panels to the frame. And sets a proper size for the frame. */ public HappyHackingConverter() { CFrame frame = new CFrame(); frame.setBackground(white); ConvertibleValue temperatures = new ConvertibleValue(); ConvertibleValue distances = new ConvertibleValue(); ConvertibleValue weights = new ConvertibleValue(); GridBagLayout leftSideLayout = new GridBagLayout(); JPanel leftSide = new JPanel(leftSideLayout); leftSide.setBackground(white); GridBagLayout rightSideLayout = new GridBagLayout(); JPanel rightSide = new JPanel(rightSideLayout); rightSide.setBackground(white); GridBagConstraints metricTemperatureConstraints = new GridBagConstraints(); metricTemperatureConstraints.gridx = 0; metricTemperatureConstraints.gridy = 0; metricTemperatureConstraints.weighty = 0.1; metricTemperatureConstraints.weightx = 1; metricTemperatureConstraints.fill = GridBagConstraints.BOTH; metricTemperatureConstraints.anchor = GridBagConstraints.FIRST_LINE_START; JPanel metricTemperaturePanel = new TemperaturePanel(frame, temperatures, TemperatureScales.CENTIGRADE); leftSideLayout.setConstraints(metricTemperaturePanel, metricTemperatureConstraints); leftSide.add(metricTemperaturePanel); GridBagConstraints metricDistancesPanelConstraints = new GridBagConstraints(); metricDistancesPanelConstraints.gridx = 0; metricDistancesPanelConstraints.gridy = 1; metricDistancesPanelConstraints.weighty = 0.3; metricDistancesPanelConstraints.weightx = 1; metricDistancesPanelConstraints.fill = GridBagConstraints.BOTH; metricDistancesPanelConstraints.anchor = GridBagConstraints.FIRST_LINE_START; JPanel metricDistancesPanel = new MetricDistancesPanel(frame, distances); leftSideLayout.setConstraints(metricDistancesPanel, metricDistancesPanelConstraints); leftSide.add(metricDistancesPanel); GridBagConstraints fahrenheitConstraints = new GridBagConstraints(); fahrenheitConstraints.gridx = 0; fahrenheitConstraints.gridy = 0; fahrenheitConstraints.weighty = 0.1; fahrenheitConstraints.weightx = 1; fahrenheitConstraints.fill = GridBagConstraints.BOTH; fahrenheitConstraints.anchor = GridBagConstraints.FIRST_LINE_START; JPanel fahrenheitTemperaturePanel = new TemperaturePanel(frame, temperatures, TemperatureScales.FAHRENHEIT); rightSideLayout.setConstraints(fahrenheitTemperaturePanel, fahrenheitConstraints); rightSide.add(fahrenheitTemperaturePanel); GridBagConstraints imperialDistancesPanelConstraints = new GridBagConstraints(); imperialDistancesPanelConstraints.gridx = 0; imperialDistancesPanelConstraints.gridy = 1; imperialDistancesPanelConstraints.weighty = 0.3; imperialDistancesPanelConstraints.weightx = 1; imperialDistancesPanelConstraints.fill = GridBagConstraints.BOTH; imperialDistancesPanelConstraints.anchor = GridBagConstraints.FIRST_LINE_START; JPanel imperialDistancesPanel = new ImperialDistancesPanel(frame, distances); rightSideLayout.setConstraints(imperialDistancesPanel, imperialDistancesPanelConstraints); rightSide.add(imperialDistancesPanel); GridBagConstraints metricWeightsConstraints = new GridBagConstraints(); metricWeightsConstraints.gridx = 0; metricWeightsConstraints.gridy = 2; metricWeightsConstraints.weighty = 0.6; metricWeightsConstraints.weightx = 1; metricWeightsConstraints.fill = GridBagConstraints.BOTH; metricWeightsConstraints.anchor = GridBagConstraints.FIRST_LINE_START; MetricWeightsPanel metricWeightsPanel = new MetricWeightsPanel(frame, weights); leftSideLayout.setConstraints(metricWeightsPanel, metricWeightsConstraints); leftSide.add(metricWeightsPanel); GridBagConstraints imperialWeightsConstraints = new GridBagConstraints(); imperialWeightsConstraints.gridx = 0; imperialWeightsConstraints.gridy = 2; imperialWeightsConstraints.weighty = 0.6; imperialWeightsConstraints.weightx = 1; imperialWeightsConstraints.fill = GridBagConstraints.BOTH; imperialWeightsConstraints.anchor = GridBagConstraints.FIRST_LINE_START; ImperialWeightsPanel imperialWeightsPanel = new ImperialWeightsPanel(frame, weights); rightSideLayout.setConstraints(imperialWeightsPanel, imperialWeightsConstraints); rightSide.add(imperialWeightsPanel); CSplit split = new CSplit(JSplitPane.HORIZONTAL_SPLIT, true, leftSide, rightSide); Container contentPane = frame.getContentPane(); contentPane.add(split); frame.validate(); frame.pack(); frame.setSize(600, 997); split.setResizeWeight(0.5); split.setDividerLocation(0.5); } // end of HappyHackingConverter constructor
private void makeGUI() { // Set Frames properties this.setTitle("Search And Edit Student"); this.setSize(700, 500); this.setLocationRelativeTo(null); this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); // Add components to panel_1 FlowLayout layout = new FlowLayout(); layout.setAlignment(FlowLayout.LEFT); panel_1.setLayout(layout); panel_1.add(searchcombobox); panel_1.add(searchtextfield); panel_1.add(searchbutton); panel_1.add(allfieldcheckbox); panel_1.setBackground(Color.WHITE); // Add panel_1 to frame this.add(panel_1, BorderLayout.PAGE_START); // Add components to panel_2 panel_2.add(totalstudentlabel); panel_2.setBackground(Color.WHITE); // Add panel_2 to frame this.add(panel_2, BorderLayout.PAGE_END); // Add components to panel_3 panel_3.setLayout(new GridLayout(1, 0)); // Design panel_5 GridBagLayout gbl = new GridBagLayout(); GridBagConstraints c = new GridBagConstraints(); c.weightx = 1; c.weighty = 1; c.fill = GridBagConstraints.BOTH; panel_5.setLayout(gbl); c.gridx = 0; c.gridy = 0; c.gridheight = 4; c.gridwidth = GridBagConstraints.REMAINDER; panel_5.add(panel_3, c); c.gridx = 0; c.gridy = 5; c.gridheight = 2; c.gridwidth = GridBagConstraints.REMAINDER; panel_5.add(panel_4, c); // Add components to panel_4 panel_4.setLayout(new GridLayout(1, 2)); panel_4.add(panel_6); // Lower Left panel_4.add(panel_7); // Lower Right // Design panel 6 SpringLayout sl = new SpringLayout(); panel_6.setLayout(sl); sl.putConstraint(SpringLayout.WEST, feespayedlabel, 2, SpringLayout.WEST, panel_6); sl.putConstraint(SpringLayout.NORTH, feespayedlabel, 2, SpringLayout.NORTH, panel_6); sl.putConstraint(SpringLayout.WEST, addfeestextfield, 2, SpringLayout.EAST, feespayedlabel); sl.putConstraint(SpringLayout.NORTH, addfeestextfield, 2, SpringLayout.NORTH, panel_6); sl.putConstraint(SpringLayout.WEST, addfeesbutton, 2, SpringLayout.EAST, addfeestextfield); sl.putConstraint(SpringLayout.NORTH, addfeesbutton, 2, SpringLayout.NORTH, panel_6); sl.putConstraint(SpringLayout.WEST, feesduelabel, 2, SpringLayout.WEST, panel_6); sl.putConstraint(SpringLayout.NORTH, feesduelabel, 2, SpringLayout.SOUTH, addfeesbutton); sl.putConstraint(SpringLayout.WEST, totalfeeslabel, 2, SpringLayout.WEST, panel_6); sl.putConstraint(SpringLayout.NORTH, totalfeeslabel, 2, SpringLayout.SOUTH, feesduelabel); sl.putConstraint(SpringLayout.WEST, coursecombobox, 2, SpringLayout.WEST, panel_6); sl.putConstraint(SpringLayout.NORTH, coursecombobox, 3, SpringLayout.SOUTH, totalfeeslabel); sl.putConstraint(SpringLayout.WEST, spinner, 2, SpringLayout.EAST, coursecombobox); sl.putConstraint(SpringLayout.NORTH, spinner, 3, SpringLayout.SOUTH, totalfeeslabel); sl.putConstraint(SpringLayout.WEST, addcoursebutton, 2, SpringLayout.WEST, panel_6); sl.putConstraint(SpringLayout.NORTH, addcoursebutton, 3, SpringLayout.SOUTH, coursecombobox); panel_6.add(feespayedlabel); panel_6.add(addfeestextfield); panel_6.add(addfeesbutton); panel_6.add(feesduelabel); panel_6.add(totalfeeslabel); panel_6.add(coursecombobox); panel_6.add(spinner); panel_6.add(addcoursebutton); // Set panel 7 layout panel_7.setLayout(new GridLayout(1, 0)); panel_7.setBackground(Color.WHITE); // Add panel_5 to frame this.add(panel_5); update(); // Show frame this.validate(); this.setVisible(true); }
public ChartWindow(String title) { this.symbol = title; thisp = this; // initialize the main layout setTitle(title); mainpanel = new JPanel(); GridBagLayout gbl = new GridBagLayout(); GridBagConstraints gbc = new GridBagConstraints(); mainpanel.setLayout(gbl); // build a toolbar // add a plain status bar this.statusLine = new JLabel("Done"); this.getContentPane().add(statusLine, BorderLayout.SOUTH); statusLine.setBackground(new Color(0, 0, 0)); statusLine.setForeground(new Color(255, 255, 255)); statusLine.setOpaque(true); // x1 = new TimeSeries("symbol", FixedMillisecond.class); dataset1.addSeries(x1); System.out.println("Populated."); // chart = createChart(dataset1); System.out.println("constr."); // chart.getXYPlot().setOrientation(PlotOrientation.VERTICAL); chart.setAntiAlias(false); chartPanel = new ChartPanel(chart); // int i = 0; gbc.anchor = gbc.NORTHWEST; gbc.fill = gbc.BOTH; gbc.weightx = 1; gbc.gridx = 0; gbc.weighty = 1; gbc.gridy = i; gbl.setConstraints(chartPanel, gbc); mainpanel.add(chartPanel); // System.out.println("add"); setVisible(true); setSize(new Dimension(400, 300)); // chartPanel.setPopupMenu(buildPopupMenu()); chartPanel.setMouseZoomable(true); chartPanel.setHorizontalAxisTrace(true); chartPanel.setVerticalAxisTrace(true); chartPanel.setHorizontalZoom(true); chartPanel.setOpaque(true); chartPanel.setBackground(new Color(0, 0, 0)); this.getContentPane().add(mainpanel, BorderLayout.CENTER); this.setSize(600, 400); this.toFront(); this.show(); }
/** * Initialize the frame. * * @param info true if additional information is desired */ private void init(boolean info) { _buttonPressed = null; addComponentListener( new java.awt.event.ComponentAdapter() { public void componentResized(ComponentEvent e) { validate(); _matchList.ensureIndexIsVisible(_matchList.getSelectedIndex()); } }); // buttons int i = 0; for (final CloseAction<T> a : _actions) { _buttons[i] = new JButton(a.getName()); final String tooltip = a.getToolTipText(); if (tooltip != null) { _buttons[i].setToolTipText(tooltip); } _buttons[i].addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { buttonPressed(a); } }); ++i; } getRootPane().setDefaultButton(_buttons[0]); _strategyBox.setEditable(false); _strategyBox.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { // System.out.println("set strategy!"); selectStrategy(); } }); _strategyBox.addFocusListener( new FocusAdapter() { public void focusLost(FocusEvent e) { boolean bf = false; for (JButton b : _buttons) { if (e.getOppositeComponent() == b) { bf = true; break; } } if ((e.getOppositeComponent() != _textField) && (!bf)) { for (JComponent c : _optionalComponents) { if (e.getOppositeComponent() == c) { return; } } _textField.requestFocus(); } } }); // text field _textField.setDragEnabled(false); _textField.setFocusTraversalKeysEnabled(false); addListener(); Keymap ourMap = JTextComponent.addKeymap("PredictiveInputFrame._textField", _textField.getKeymap()); for (final CloseAction<T> a : _actions) { KeyStroke ks = a.getKeyStroke(); if (ks != null) { ourMap.addActionForKeyStroke( ks, new AbstractAction() { public void actionPerformed(ActionEvent e) { buttonPressed(a); } }); } } ourMap.addActionForKeyStroke( KeyStroke.getKeyStroke(KeyEvent.VK_TAB, 0), new AbstractAction() { public void actionPerformed(ActionEvent e) { // System.out.println("tab!"); removeListener(); _pim.extendSharedMask(); updateTextField(); updateExtensionLabel(); updateList(); addListener(); } }); ourMap.addActionForKeyStroke( KeyStroke.getKeyStroke(KeyEvent.VK_UP, 0), new AbstractAction() { public void actionPerformed(ActionEvent e) { // System.out.println("up!"); if (_matchList.getModel().getSize() > 0) { removeListener(); int i = _matchList.getSelectedIndex(); if (i > 0) { _matchList.setSelectedIndex(i - 1); _matchList.ensureIndexIsVisible(i - 1); _pim.setCurrentItem(_pim.getMatchingItems().get(i - 1)); updateInfo(); } addListener(); } } }); ourMap.addActionForKeyStroke( KeyStroke.getKeyStroke(KeyEvent.VK_DOWN, 0), new AbstractAction() { public void actionPerformed(ActionEvent e) { // System.out.println("down!"); if (_matchList.getModel().getSize() > 0) { removeListener(); int i = _matchList.getSelectedIndex(); if (i < _matchList.getModel().getSize() - 1) { _matchList.setSelectedIndex(i + 1); _matchList.ensureIndexIsVisible(i + 1); _pim.setCurrentItem(_pim.getMatchingItems().get(i + 1)); updateInfo(); } addListener(); } } }); ourMap.addActionForKeyStroke( KeyStroke.getKeyStroke(KeyEvent.VK_PAGE_UP, 0), new AbstractAction() { public void actionPerformed(ActionEvent e) { // System.out.println("page up!"); if (_matchList.getModel().getSize() > 0) { removeListener(); int page = _matchList.getLastVisibleIndex() - _matchList.getFirstVisibleIndex() + 1; int i = _matchList.getSelectedIndex() - page; if (i < 0) i = 0; _matchList.setSelectedIndex(i); _matchList.ensureIndexIsVisible(i); _pim.setCurrentItem(_pim.getMatchingItems().get(i)); updateInfo(); addListener(); } } }); ourMap.addActionForKeyStroke( KeyStroke.getKeyStroke(KeyEvent.VK_PAGE_DOWN, 0), new AbstractAction() { public void actionPerformed(ActionEvent e) { // System.out.println("page down!"); if (_matchList.getModel().getSize() > 0) { removeListener(); int page = _matchList.getLastVisibleIndex() - _matchList.getFirstVisibleIndex() + 1; int i = _matchList.getSelectedIndex() + page; if (i >= _matchList.getModel().getSize()) { i = _matchList.getModel().getSize() - 1; } _matchList.setSelectedIndex(i); _matchList.ensureIndexIsVisible(i); _pim.setCurrentItem(_pim.getMatchingItems().get(i)); updateInfo(); addListener(); } } }); _textField.setKeymap(ourMap); _textField.addFocusListener( new FocusAdapter() { public void focusLost(FocusEvent e) { boolean bf = false; for (JButton b : _buttons) { if (e.getOppositeComponent() == b) { bf = true; break; } } if ((e.getOppositeComponent() != _strategyBox) && (!bf)) { for (JComponent c : _optionalComponents) { if (e.getOppositeComponent() == c) { return; } } _textField.requestFocus(); } } }); _matchList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); _matchList.addListSelectionListener( new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { // System.out.println("click!"); removeListener(); int i = _matchList.getSelectedIndex(); if (i >= 0) { _pim.setCurrentItem(_pim.getMatchingItems().get(i)); _matchList.ensureIndexIsVisible(i); updateInfo(); } addListener(); } }); // put everything together Container contentPane = getContentPane(); GridBagLayout layout = new GridBagLayout(); contentPane.setLayout(layout); GridBagConstraints c = new GridBagConstraints(); c.anchor = GridBagConstraints.NORTHWEST; c.weightx = 1.0; c.weighty = 0.0; c.gridwidth = GridBagConstraints.REMAINDER; // end row c.insets.top = 2; c.insets.left = 2; c.insets.bottom = 2; c.insets.right = 2; if (info) { c.fill = GridBagConstraints.NONE; contentPane.add(_infoLabel, c); } c.fill = GridBagConstraints.BOTH; c.weighty = 1.0; contentPane.add( new JScrollPane( _matchList, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED), c); c.anchor = GridBagConstraints.SOUTHWEST; c.fill = GridBagConstraints.NONE; c.weightx = 0.0; c.weighty = 0.0; c.gridwidth = 1; contentPane.add(_tabCompletesLabel, c); c.fill = GridBagConstraints.HORIZONTAL; c.weightx = 1.0; c.gridwidth = GridBagConstraints.REMAINDER; contentPane.add(_sharedExtLabel, c); contentPane.add(_textField, c); _optionalComponents = makeOptions(); if (_optionalComponents.length > 0) { _optionsPanel = new JPanel(new BorderLayout()); _setupOptionsPanel(_optionalComponents); contentPane.add(_optionsPanel, c); } c.anchor = GridBagConstraints.SOUTHWEST; c.weightx = 1.0; c.weighty = 0.0; c.gridwidth = GridBagConstraints.REMAINDER; // end row c.insets.top = 2; c.insets.left = 2; c.insets.bottom = 2; c.insets.right = 2; JPanel buttonPanel = new JPanel(new GridBagLayout()); GridBagConstraints bc = new GridBagConstraints(); bc.insets.left = 2; bc.insets.right = 2; buttonPanel.add(new JLabel("Matching strategy:"), bc); buttonPanel.add(_strategyBox, bc); for (JButton b : _buttons) { buttonPanel.add(b, bc); } contentPane.add(buttonPanel, c); pack(); // Dimension parentDim = (_owner != null) ? _owner.getSize() : getToolkit().getScreenSize(); //// int xs = (int) parentDim.getWidth()/3; // int ys = (int) parentDim.getHeight()/4; //// in line below, parentDim was _owner.getSize(); changed because former could generate // NullPointerException // setSize(new Dimension((int) getSize().getWidth(), (int)Math.min(parentDim.getHeight(), // Math.max(ys, 300)))); if (_owner != null) { setLocationRelativeTo(_owner); } removeListener(); updateTextField(); addListener(); updateList(); }