/** * Creates component. * * @param collection collection to show. * @param treeMode <code>TRUE</code> to set tree mode by default. * @param readingLists <code>TRUE</code> if showing reading lists. */ public CListTree(Collection collection, boolean treeMode, boolean readingLists) { this.collection = collection; this.readingLists = readingLists; itemListener = new CItemListener(); setLayout(new BorderLayout()); setTreeMode(treeMode); BBFormBuilder builder = new BBFormBuilder("p, 2dlu, p, 0:grow"); JComboBox cbViewMode = new JComboBox( new Object[] { Strings.message("collections.viewmode.tree"), Strings.message("collections.viewmode.list") }); cbViewMode.setSelectedIndex(treeMode ? 0 : 1); cbViewMode.addItemListener( new ItemListener() { public void itemStateChanged(ItemEvent e) { JComboBox box = (JComboBox) e.getSource(); boolean isTree = box.getSelectedIndex() == 0; setTreeMode(isTree); } }); builder.append(Strings.message("collections.viewmode"), cbViewMode); builder.appendRelatedComponentsGapRow(2); add(builder.getPanel(), BorderLayout.NORTH); // Description area taDescription = new JEditorPane(); Color back = taDescription.getBackground(); taDescription.setEditable(false); taDescription.setBackground(back); taDescription.setEditorKit(new CustomHTMLEditorKit()); HTMLDocument doc = (HTMLDocument) taDescription.getDocument(); Style def = doc.getStyle("default"); Font font = UIManager.getFont("TextArea.font"); if (SystemUtils.IS_OS_MAC) font = UifUtilities.applyFontBias(font, -2); UifUtilities.setFontAttributes(doc.addStyle(TEXT_STYLE, def), font); builder = new BBFormBuilder("0:grow"); builder.appendUnrelatedComponentsGapRow(2); builder.appendRow("p"); builder.append(Strings.message("collections.description"), 1); builder.appendRelatedComponentsGapRow(2); builder.appendRow("50px"); builder.append(taDescription, 1, CellConstraints.FILL, CellConstraints.FILL); add(builder.getPanel(), BorderLayout.SOUTH); }
/** * Builds reading lists tab. * * @return component. */ protected JComponent buildReadingListsTab() { // Wording JComponent wording = msg(Strings.message("guide.dialog.readinglists.wording")); // Buttons Dimension btnSize = new Dimension(20, 20); btnAddReadingList.setPreferredSize(btnSize); btnRemoveList.setPreferredSize(btnSize); FlowLayout layout = new FlowLayout(FlowLayout.LEFT); JPanel bbar = new JPanel(layout); bbar.add(btnAddReadingList); bbar.add(btnRemoveList); layout.setHgap(0); layout.setVgap(0); // Panel BBFormBuilder builder = new BBFormBuilder("0:grow"); builder.setDefaultDialogBorder(); builder.append(wording); builder.appendUnrelatedComponentsGapRow(2); builder.appendRow("min:grow"); builder.append(new JScrollPane(tblReadingLists), 1, CellConstraints.FILL, CellConstraints.FILL); builder.append(bbar); return builder.getPanel(); }
/** * Creates notifications panel. * * @return panel. */ protected JComponent buildNotificationsTab() { // Wording JComponent wording = msg(Strings.message("guide.dialog.notifications.wording")); // Panel BBFormBuilder builder = new BBFormBuilder("0:grow"); builder.setDefaultDialogBorder(); builder.append(wording); builder.appendUnrelatedComponentsGapRow(2); builder.append(chAllowNotifications); return builder.getPanel(); }
/** * Builds panel for publishing tab when publishing is unavailable. * * @param aWording wording to put on the page. * @return component. */ private JPanel buildPublishingTabUnavailable(JComponent aWording) { // Panel BBFormBuilder builder = new BBFormBuilder("0:grow"); builder.setDefaultDialogBorder(); builder.append(aWording); builder.appendUnrelatedComponentsGapRow(2); builder.append( ComponentsFactory.createWrappedMultilineLabel( Strings.message("guide.dialog.publishing.you.need.bbservice.account"))); return builder.getPanel(); }
/** * Builds main part. * * @return main part. */ protected JComponent buildMain() { BBFormBuilder builder = new BBFormBuilder("pref, 4dlu, max(pref;200px):grow, 4dlu, p"); builder.setDefaultDialogBorder(); JComponent wording = ComponentsFactory.createWrappedMultilineLabel( Strings.message("guide.dialog.readinglists.add.wording")); builder.append(wording, 3); builder.appendUnrelatedComponentsGapRow(2); builder.append(Strings.message("guide.dialog.readinglists.add.address"), tfAddress); builder.append(btnSuggest); builder.append(Strings.message("guide.dialog.readinglists.add.status"), lbStatus); return builder.getPanel(); }
/** * Builds the panel for publishing tab when too many guides are already published. * * @param wording wording to put on the page. * @return component. */ private JPanel buildPublishingTabLimitReached(JComponent wording) { BBFormBuilder builder = new BBFormBuilder("0:grow"); builder.setDefaultDialogBorder(); builder.append(wording); builder.appendUnrelatedComponentsGapRow(2); builder.append( ComponentsFactory.createWrappedMultilineLabel( MessageFormat.format( Strings.message("guide.dialog.publishing.limit.reached"), publishingLimit))); builder.appendUnrelatedComponentsGapRow(2); LinkLabel link = new LinkLabel(Strings.message("guide.dialog.publishing.limit.reached.link"), SERVICE_LINK); builder.append(link); return builder.getPanel(); }
/** * Builds panel for publishing tab when publishing is available. * * @param aWording wording to put on the page. * @return component. */ private JPanel buildPublishingTabAvailable(JComponent aWording) { JPanel sscPanel = new JPanel(new BorderLayout()); sscPanel.add(sscPublishingRating, BorderLayout.WEST); // Panel BBFormBuilder builder = new BBFormBuilder("7dlu, p, 2dlu, 100dlu, 0:grow, 2dlu, p"); builder.setDefaultDialogBorder(); builder.append(aWording, 7); builder.appendUnrelatedComponentsGapRow(2); builder.append(chPublishingEnabled, 7); builder.setLeadingColumnOffset(1); builder.append(lbPublishingTitle, tfPublishingTitle); builder.nextLine(); builder.append(lbPublishingTags, tfPublishingTags); builder.nextLine(); builder.append(lbPublishingPublic, chPublishingPublic); builder.nextLine(); builder.append(lbPublishingRating, sscPanel); builder.appendUnrelatedComponentsGapRow(2); builder.append(lbPublishingURL); builder.append(lnkPublishingURL, 2); builder.append(btnCopyToClipboard); builder.append(lbLastPublishingDate, tfLastPublishingDate); builder.setLeadingColumnOffset(0); builder.appendUnrelatedComponentsGapRow(2); builder.appendRow("min:grow"); JComponent instructionsBox = ComponentsFactory.createInstructionsBox( Strings.message("guide.dialog.publishing.instructions")); builder.append(instructionsBox, 7, CellConstraints.FILL, CellConstraints.FILL); return builder.getPanel(); }