/** * Creates and adds a JLabel representing the icon returned from <code>getIcon</code> to <code>top * </code>. This is messaged from <code>createMessageArea</code> */ protected void addIcon(Container top) { /* Create the icon. */ Icon sideIcon = getIcon(); if (sideIcon != null) { JLabel iconLabel = new JLabel(sideIcon); iconLabel.setName("OptionPane.iconLabel"); iconLabel.setVerticalAlignment(SwingConstants.TOP); top.add(iconLabel, BorderLayout.BEFORE_LINE_BEGINS); } }
/** * Recursively creates new JLabel instances to represent <code>d</code>. Each JLabel instance is * added to <code>c</code>. */ protected void burstStringInto(Container c, String d, int maxll) { // Primitive line wrapping int len = d.length(); if (len <= 0) return; if (len > maxll) { int p = d.lastIndexOf(' ', maxll); if (p <= 0) p = d.indexOf(' ', maxll); if (p > 0 && p < len) { burstStringInto(c, d.substring(0, p), maxll); burstStringInto(c, d.substring(p + 1), maxll); return; } } JLabel label = new JLabel(d, JLabel.LEFT); label.setName("OptionPane.label"); configureMessageLabel(label); c.add(label); }
private void insertParameter(ConfigParamDescr descr, String format, int pos) { try { StyledDocument doc = (StyledDocument) editorPane.getDocument(); // The component must first be wrapped in a style Style style = doc.addStyle("Parameter-" + numParameters, null); JLabel label = new JLabel(descr.getDisplayName()); label.setAlignmentY(0.8f); // make sure we line up label.setFont(new Font("Helvetica", Font.PLAIN, 14)); label.setForeground(Color.BLUE); label.setName(descr.getKey()); label.setToolTipText("key: " + descr.getKey() + " format: " + format); StyleConstants.setComponent(style, label); doc.insertString(pos, format, style); numParameters++; } catch (BadLocationException e) { } }
public TestHTML() { int d = (Frame.getFrames().length == 0) ? JFrame.EXIT_ON_CLOSE : JFrame.DISPOSE_ON_CLOSE; JPanel pan = new JPanel(); pan.setLayout(new BorderLayout(GAP, GAP - 4)); pan.setBorder(new EmptyBorder(GAP, GAP, GAP, GAP)); pan.setBackground(COL); pan.setFont(font); lab = new JLabel(MSG); // , SwingConstants.CENTER); lab.setName("title"); lab.setFont(new Font("Serif", 3, 16)); // lab.setForeground(Color.black); pan.add(lab, "North"); text = new JTextArea("JTextArea\n"); text.setName("area"); text.setLineWrap(true); text.setFont(font); JScrollPane scr1 = new JScrollPane(text); scr1.setPreferredSize(new Dimension(300, 500)); pan.add(scr1, "Center"); html = new JEditorPane(); html.setContentType("text/html"); html.setEditable(false); html.addMouseListener(this); html.addMouseMotionListener(this); JScrollPane scr2 = new JScrollPane(html); scr2.setPreferredSize(new Dimension(350, 500)); pan.add(scr2, "East"); but = new JButton("Copy text from JTextArea to JEditorPane"); but.addActionListener(this); pan.add(but, "South"); frm = new JFrame(MSG); frm.setContentPane(pan); frm.setDefaultCloseOperation(d); frm.setLocation(100, 150); frm.pack(); frm.setVisible(true); }
/** Construct a new dialog. */ public JArchiveDialog() { super("Archive Tool"); pPrivilegeDetails = new PrivilegeDetails(); /* create dialog body components */ { JPanel cpanel = new JPanel(); { cpanel.setName("ButtonDialogPanel"); cpanel.setLayout(new BoxLayout(cpanel, BoxLayout.Y_AXIS)); cpanel.add(UIFactory.createPanelLabel("Candidate Versions:")); cpanel.add(Box.createRigidArea(new Dimension(0, 4))); { ArchiveCandidateTableModel model = new ArchiveCandidateTableModel(); pCandidateTableModel = model; JTablePanel tpanel = new JTablePanel(model); pCandidateTablePanel = tpanel; cpanel.add(tpanel); } cpanel.add(Box.createRigidArea(new Dimension(0, 5))); { Box hbox = new Box(BoxLayout.X_AXIS); hbox.add(Box.createHorizontalGlue()); hbox.add(Box.createRigidArea(new Dimension(10, 0))); { JButton btn = UIFactory.createDialogButton( "Search...", "candidate-search", this, "Search for new candidate checked-in versions to archive."); hbox.add(btn); } hbox.add(Box.createRigidArea(new Dimension(20, 0))); { JButton btn = UIFactory.createDialogButton( "Clear", "clear-candidate", this, "Clear the displayed candidate checked-in versions."); hbox.add(btn); } hbox.add(Box.createRigidArea(new Dimension(10, 0))); hbox.add(Box.createHorizontalGlue()); cpanel.add(hbox); } } JPanel apanel = new JPanel(); { apanel.setName("ButtonDialogPanel"); apanel.setLayout(new BoxLayout(apanel, BoxLayout.Y_AXIS)); { Box box = new Box(BoxLayout.X_AXIS); box.add(Box.createRigidArea(new Dimension(4, 0))); { JLabel label = new JLabel("Versions to Archive:"); label.setName("PanelLabel"); box.add(label); } box.add(Box.createHorizontalGlue()); { JLabel label = new JLabel("Total Size: ???"); pArchiveSizeLabel = label; label.setName("PanelLabel"); box.add(label); } box.add(Box.createRigidArea(new Dimension(23, 0))); apanel.add(box); } apanel.add(Box.createRigidArea(new Dimension(0, 4))); { NodeVersionSizeTableModel model = new NodeVersionSizeTableModel(880); pArchiveTableModel = model; JTablePanel tpanel = new JTablePanel(model); pArchiveTablePanel = tpanel; apanel.add(tpanel); } apanel.add(Box.createRigidArea(new Dimension(0, 5))); { Box hbox = new Box(BoxLayout.X_AXIS); hbox.add(Box.createHorizontalGlue()); hbox.add(Box.createRigidArea(new Dimension(10, 0))); { JButton btn = UIFactory.createDialogButton( "Add", "add-archive", this, "Add the selected candidate versions to the list of versions to be " + "archived."); hbox.add(btn); } hbox.add(Box.createRigidArea(new Dimension(10, 0))); { JButton btn = UIFactory.createDialogButton( "Add All", "add-all-archive", this, "Add all candidate versions to the list of versions to be archived."); hbox.add(btn); } hbox.add(Box.createRigidArea(new Dimension(20, 0))); { JButton btn = UIFactory.createDialogButton( "Remove", "remove-archive", this, "Remove the selected versions from the list of versions to be archived."); hbox.add(btn); } hbox.add(Box.createRigidArea(new Dimension(10, 0))); { JButton btn = UIFactory.createDialogButton( "Clear", "remove-all-archive", this, "Clear the list of versions to be archived."); hbox.add(btn); } hbox.add(Box.createRigidArea(new Dimension(20, 0))); { JButton btn = UIFactory.createDialogButton( "Calc Sizes", "calc-archive", this, "Calculate the amount of disk space needed to archive the files " + "associated with the checked-in versions."); hbox.add(btn); } hbox.add(Box.createRigidArea(new Dimension(10, 0))); hbox.add(Box.createHorizontalGlue()); apanel.add(hbox); } } JSplitPane body = new JVertSplitPanel(cpanel, apanel); body.setAlignmentX(0.5f); String extra[][] = {{"Archive...", "archive"}}; JButton btns[] = super.initUI("Archive Tool:", body, null, null, extra, "Close", null); pArchiveButton = btns[0]; pArchiveButton.setEnabled(false); updatePanel(); pack(); } pQueryDialog = new JArchiveQueryDialog(this); pArchiveParamsDialog = new JArchiveParamsDialog(this); }
/** * 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); } } }
/** Construct a new dialog. */ public JExecDetailsDialog() { super("Execution Details"); /* create dialog body components */ { JPanel body = new JPanel(); body.setLayout(new BoxLayout(body, BoxLayout.Y_AXIS)); { JPanel panel = new JPanel(); panel.setName("MainDialogPanel"); panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS)); /* working directory */ { panel.add(UIFactory.createPanelLabel("Working Directory:")); panel.add(Box.createRigidArea(new Dimension(0, 4))); JTextField field = UIFactory.createTextField(null, 100, JLabel.LEFT); pWorkingDirField = field; panel.add(field); } body.add(panel); } { JPanel panel = new JPanel(); panel.setName("HorizontalBar"); Dimension size = new Dimension(100, 7); panel.setPreferredSize(size); panel.setMinimumSize(size); panel.setMaximumSize(new Dimension(Integer.MAX_VALUE, 7)); body.add(panel); } /* command line */ JPanel above = new JPanel(); { above.setName("MainDialogPanel"); above.setLayout(new BoxLayout(above, BoxLayout.Y_AXIS)); { Box hbox = new Box(BoxLayout.X_AXIS); hbox.add(Box.createRigidArea(new Dimension(4, 0))); { JLabel label = new JLabel("X"); pCommandLineLabel = label; label.setName("PanelLabel"); hbox.add(label); } hbox.add(Box.createHorizontalGlue()); above.add(hbox); } above.add(Box.createRigidArea(new Dimension(0, 4))); { JTextArea area = new JTextArea(null, 5, 70); pCommandLineArea = area; area.setName("CodeTextArea"); area.setLineWrap(true); area.setWrapStyleWord(true); area.setEditable(false); } { JScrollPane scroll = UIFactory.createScrollPane( pCommandLineArea, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, new Dimension(100, 27), null, null); above.add(scroll); } } /* environment */ JPanel below = new JPanel(); { below.setName("MainDialogPanel"); below.setLayout(new BoxLayout(below, BoxLayout.Y_AXIS)); { Box hbox = new Box(BoxLayout.X_AXIS); hbox.add(Box.createRigidArea(new Dimension(4, 0))); { JLabel label = new JLabel("X"); pEnvLabel = label; label.setName("PanelLabel"); hbox.add(label); } hbox.add(Box.createHorizontalGlue()); below.add(hbox); } below.add(Box.createRigidArea(new Dimension(0, 4))); Component comps[] = UIFactory.createTitledPanels(); { JPanel tpanel = (JPanel) comps[0]; JPanel vpanel = (JPanel) comps[1]; tpanel.add(Box.createRigidArea(new Dimension(sTSize, 0))); vpanel.add(Box.createHorizontalGlue()); } { pEnvScroll = UIFactory.createScrollPane( comps[2], ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, new Dimension(100, 50), new Dimension(100, 300), null); below.add(pEnvScroll); } } { JVertSplitPanel split = new JVertSplitPanel(above, below); split.setResizeWeight(0.0); split.setAlignmentX(0.5f); body.add(split); } super.initUI("X", body, null, null, null, "Close", null); } }