List of usage examples for com.jgoodies.forms.factories Borders createEmptyBorder
public static Border createEmptyBorder(ConstantSize top, ConstantSize left, ConstantSize bottom, ConstantSize right)
From source file:org.springframework.richclient.util.GuiStandardUtils.java
License:Apache License
public static Border createTopAndBottomBorder(ConstantSize space) { return Borders.createEmptyBorder(space, Sizes.ZERO, space, Sizes.ZERO); }
From source file:se.streamsource.streamflow.client.ui.administration.surface.AccessPointView.java
License:Apache License
public AccessPointView(@Service ApplicationContext appContext, @Uses final AccessPointModel model, @Structure Module module) {//w w w. java2s. c o m this.model = model; this.labels = module.objectBuilderFactory().newObjectBuilder(CaseLabelsView.class) .use(model.getLabelsModel()).newInstance(); setLayout(new BorderLayout()); setActionMap(appContext.getActionMap(this)); RefreshComponents refreshComponents = new RefreshComponents(); model.addObserver(refreshComponents); actionBinder = module.objectBuilderFactory().newObjectBuilder(ActionBinder.class).use(getActionMap()) .newInstance(); valueBinder = module.objectBuilderFactory().newObject(ValueBinder.class); actionBinder.setResourceMap(appContext.getResourceMap(getClass())); LinkValueConverter linkValueConverter = new LinkValueConverter(); FormLayout layout = new FormLayout("90dlu, 5dlu, 150:grow", "pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, " + "pref, 12dlu, pref, 2dlu, pref, 12dlu, pref, 2dlu, default:grow"); JPanel panel = new JPanel(layout); DefaultFormBuilder builder = new DefaultFormBuilder(layout, panel); builder.setBorder(Borders.createEmptyBorder(Sizes.DLUY8, Sizes.DLUX4, Sizes.DLUY2, Sizes.DLUX8)); CellConstraints cc = new CellConstraints(); MacOsUIWrapper.convertAccelerators(appContext.getActionMap(AccessPointView.class, this)); selectedProject.setFont(selectedProject.getFont().deriveFont(Font.BOLD)); selectedCaseType.setFont(selectedCaseType.getFont().deriveFont(Font.BOLD)); selectedForm.setFont(selectedForm.getFont().deriveFont(Font.BOLD)); selectedTemplate.getLabel().setFont(selectedTemplate.getLabel().getFont().deriveFont(Font.BOLD)); ActionMap am = getActionMap(); // Select project javax.swing.Action projectAction = am.get("project"); projectButton = new StreamflowButton(projectAction); projectButton.registerKeyboardAction(projectAction, (KeyStroke) projectAction.getValue(javax.swing.Action.ACCELERATOR_KEY), JComponent.WHEN_IN_FOCUSED_WINDOW); projectButton.setHorizontalAlignment(SwingConstants.LEFT); builder.add(projectButton, cc.xy(1, 1)); builder.add(valueBinder.bind("project", selectedProject, linkValueConverter), new CellConstraints(3, 1, 1, 1, CellConstraints.LEFT, CellConstraints.CENTER, new Insets(5, 0, 0, 0))); // Select case type javax.swing.Action caseTypeAction = am.get("casetype"); caseTypeButton = new StreamflowButton(caseTypeAction); caseTypeButton.registerKeyboardAction(caseTypeAction, (KeyStroke) caseTypeAction.getValue(javax.swing.Action.ACCELERATOR_KEY), JComponent.WHEN_IN_FOCUSED_WINDOW); caseTypeButton.setHorizontalAlignment(SwingConstants.LEFT); builder.add(caseTypeButton, cc.xy(1, 3)); builder.add(valueBinder.bind("caseType", selectedCaseType, linkValueConverter), new CellConstraints(3, 3, 1, 1, CellConstraints.LEFT, CellConstraints.CENTER, new Insets(5, 0, 0, 0))); // Select labels javax.swing.Action labelAction = labels.getActionMap().get("addLabel"); labelButton = new StreamflowButton(labelAction); labelButton.registerKeyboardAction(labelAction, (KeyStroke) labelAction.getValue(javax.swing.Action.ACCELERATOR_KEY), JComponent.WHEN_IN_FOCUSED_WINDOW); labelButton.setHorizontalAlignment(SwingConstants.LEFT); builder.add(labelButton, cc.xy(1, 5, CellConstraints.FILL, CellConstraints.TOP)); labels.setPreferredSize(new Dimension(500, 60)); labels.setTextBold(true); labels.setButtonRelation(labelButton); builder.add(labels, new CellConstraints(3, 5, 1, 1, CellConstraints.LEFT, CellConstraints.TOP, new Insets(5, 0, 0, 0))); // Select form javax.swing.Action formAction = am.get("form"); formButton = new StreamflowButton(formAction); formButton.registerKeyboardAction(formAction, (KeyStroke) formAction.getValue(javax.swing.Action.ACCELERATOR_KEY), JComponent.WHEN_IN_FOCUSED_WINDOW); formButton.setHorizontalAlignment(SwingConstants.LEFT); builder.add(formButton, cc.xy(1, 7, CellConstraints.FILL, CellConstraints.TOP)); // Open replace selection field value editor javax.swing.Action replaceSelectionFieldValueAction = am.get("openReplaceSelectionFieldValueEditor"); replaceSelectionFieldValueEditButton = new StreamflowButton(replaceSelectionFieldValueAction); /*replaceSelectionFieldValueEditButton.registerKeyboardAction( replaceSelectionFieldValueAction, (KeyStroke) replaceSelectionFieldValueAction .getValue( javax.swing.Action.ACCELERATOR_KEY ), JComponent.WHEN_IN_FOCUSED_WINDOW ); */ replaceSelectionFieldValueEditButton.setHorizontalAlignment(SwingConstants.RIGHT); PanelBuilder panelBuilder = new PanelBuilder(new FormLayout("150dlu,5dlu,250:grow", "pref")); panelBuilder.add(valueBinder.bind("form", selectedForm, linkValueConverter)); panelBuilder.nextColumn(2); panelBuilder.add(replaceSelectionFieldValueEditButton, new CellConstraints(3, 1, 1, 1, CellConstraints.RIGHT, CellConstraints.CENTER, new Insets(0, 0, 0, 0))); //panelBuilder.setBorder(BorderFactory.createLineBorder(Color.RED)); builder.add(panelBuilder.getPanel()/*valueBinder.bind( "form", selectedForm, linkValueConverter )*/, new CellConstraints(3, 7, 1, 1, CellConstraints.LEFT, CellConstraints.CENTER, new Insets(5, 0, 0, 0))); // Select template javax.swing.Action templateAction = am.get("template"); templateButton = new StreamflowButton(templateAction); templateButton.registerKeyboardAction(templateAction, (KeyStroke) templateAction.getValue(javax.swing.Action.ACCELERATOR_KEY), JComponent.WHEN_IN_FOCUSED_WINDOW); templateButton.setHorizontalAlignment(SwingConstants.LEFT); builder.add(templateButton, cc.xy(1, 9, CellConstraints.FILL, CellConstraints.TOP)); builder.add(valueBinder.bind("template", actionBinder.bind("removeTemplate", selectedTemplate)), new CellConstraints(3, 9, 1, 1, CellConstraints.LEFT, CellConstraints.CENTER, new Insets(3, 0, 0, 0))); builder.add(new JLabel(text(AdministrationResources.cookieExpirationHours)), cc.xy(1, 13, CellConstraints.LEFT, CellConstraints.BOTTOM)); builder.add( valueBinder.bind("cookieExpirationHours", actionBinder.bind("changeCookieExpirationHours", cookieExpiration = new JTextField())), new CellConstraints(3, 13, 1, 1, CellConstraints.FILL, CellConstraints.BOTTOM, new Insets(3, 0, 0, 0))); mailSelectionLabel.setText(text(AdministrationResources.changeMailSelectionMessage)); mailSelectionLabel.setToolTipText(text(AdministrationResources.changeMailSelectionMessageHint)); builder.add(mailSelectionLabel, cc.xy(1, 15, CellConstraints.LEFT, CellConstraints.BOTTOM)); builder.add( valueBinder.bind("mailSelectionMessage", actionBinder.bind("changeMailSelectionMessage", mailSelectionField)), new CellConstraints(3, 15, 1, 1, CellConstraints.FILL, CellConstraints.BOTTOM, new Insets(3, 0, 0, 0))); PanelBuilder signPanel = new PanelBuilder(new FormLayout("180dlu, 15dlu, 180dlu", "default:grow")); CellConstraints signPanelCc = new CellConstraints(); PanelBuilder primarySignPanel = new PanelBuilder(new FormLayout("180dlu", "pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, default:grow")); CellConstraints primaryCc = new CellConstraints(); primarySignPanel.addSeparator(text(AdministrationResources.signature_1), primaryCc.xy(1, 1)); primarySignPanel.add(valueBinder.bind("primarysign", actionBinder.bind("setSignActive1", signActive1 = new JCheckBox(text(AdministrationResources.active))), new ValueBinder.Converter<RequiredSignatureValue, Boolean>() { public Boolean toComponent(RequiredSignatureValue value) { return value != null ? value.active().get() : Boolean.FALSE; } }), primaryCc.xy(1, 3)); primarySignPanel.addLabel(text(AdministrationResources.name_label), primaryCc.xy(1, 5)); primarySignPanel.add( valueBinder.bind("primarysign", actionBinder.bind("setSignName1", signName1 = new JTextField()), new ValueBinder.Converter<RequiredSignatureValue, String>() { public String toComponent(RequiredSignatureValue value) { return value != null ? value.name().get() : ""; } }), primaryCc.xy(1, 7)); refreshComponents.enabledOn("updateprimarysign", signName1); primarySignPanel.add(new JLabel(text(AdministrationResources.description_label)), primaryCc.xy(1, 9)); primarySignPanel.add(valueBinder.bind("primarysign", actionBinder.bind("setSignDescription1", signDescription1 = new JTextField()), new ValueBinder.Converter<RequiredSignatureValue, String>() { public String toComponent(RequiredSignatureValue value) { return value != null ? value.description().get() : ""; } }), primaryCc.xy(1, 11)); refreshComponents.enabledOn("updateprimarysign", signDescription1); signPanel.add(primarySignPanel.getPanel(), signPanelCc.xy(1, 1, CellConstraints.LEFT, CellConstraints.TOP)); PanelBuilder secondarySignPanel = new PanelBuilder(new FormLayout("180dlu", "pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, 12dlu, pref, 2dlu, pref, 2dlu, default:grow")); CellConstraints secondaryCc = new CellConstraints(); secondarySignPanel.addSeparator(text(AdministrationResources.signature_2), secondaryCc.xy(1, 1)); PanelBuilder secondaryOptionsPanel = new PanelBuilder(new FormLayout("70dlu,5dlu,70dlu,pref:grow", "pref")); secondaryOptionsPanel.add(valueBinder.bind("secondarysign", actionBinder.bind("setSignActive2", signActive2 = new JCheckBox(text(AdministrationResources.active))), new ValueBinder.Converter<RequiredSignatureValue, Boolean>() { public Boolean toComponent(RequiredSignatureValue value) { return value != null ? value.active().get() : Boolean.FALSE; } }), secondaryCc.xy(1, 1)); refreshComponents.enabledOn("updatesecondarysignactive", signActive2); secondaryOptionsPanel.add(valueBinder.bind("secondarysign", actionBinder.bind("setSecondMandatory", mandatory2 = new JCheckBox(text(AdministrationResources.mandatory))), new ValueBinder.Converter<RequiredSignatureValue, Boolean>() { public Boolean toComponent(RequiredSignatureValue value) { return value != null ? value.mandatory().get() : Boolean.FALSE; } }), secondaryCc.xy(3, 1)); refreshComponents.enabledOn("updatesecondarysign", mandatory2); secondarySignPanel.add(secondaryOptionsPanel.getPanel(), secondaryCc.xy(1, 3)); secondarySignPanel.add(new JLabel(text(AdministrationResources.name_label)), secondaryCc.xy(1, 5)); secondarySignPanel.add( valueBinder.bind("secondarysign", actionBinder.bind("setSignName2", signName2 = new JTextField()), new ValueBinder.Converter<RequiredSignatureValue, String>() { public String toComponent(RequiredSignatureValue value) { return value != null ? value.name().get() : ""; } }), secondaryCc.xy(1, 7)); refreshComponents.enabledOn("updatesecondarysign", signName2); secondarySignPanel.add(new JLabel(text(AdministrationResources.description_label)), secondaryCc.xy(1, 9)); secondarySignPanel.add(valueBinder.bind("secondarysign", actionBinder.bind("setSignDescription2", signDescription2 = new JTextField()), new ValueBinder.Converter<RequiredSignatureValue, String>() { public String toComponent(RequiredSignatureValue value) { return value != null ? value.description().get() : ""; } }), secondaryCc.xy(1, 11)); refreshComponents.enabledOn("updatesecondarysign", signDescription2); // Select form javax.swing.Action form2Action = am.get("setSecondForm"); form2Button = new StreamflowButton(form2Action); form2Button.registerKeyboardAction(form2Action, (KeyStroke) form2Action.getValue(javax.swing.Action.ACCELERATOR_KEY), JComponent.WHEN_IN_FOCUSED_WINDOW); form2Button.setHorizontalAlignment(SwingConstants.LEFT); refreshComponents.enabledOn("updatesecondarysign", form2Button); PanelBuilder form2ButtonPanel = new PanelBuilder(new FormLayout("70dlu, 5dlu, 150dlu:grow", "pref")); CellConstraints form2ButtonPanelCc = new CellConstraints(); form2ButtonPanel.add(form2Button, form2ButtonPanelCc.xy(1, 1, CellConstraints.FILL, CellConstraints.TOP)); form2ButtonPanel.add(valueBinder.bind("secondarysign", selectedForm2 = new JLabel(), new ValueBinder.Converter<RequiredSignatureValue, String>() { public String toComponent(RequiredSignatureValue value) { return value != null ? value.formdescription().get() : ""; } }), form2ButtonPanelCc.xy(3, 1, CellConstraints.LEFT, CellConstraints.CENTER)); secondarySignPanel.add(form2ButtonPanel.getPanel(), secondaryCc.xy(1, 13)); secondarySignPanel.add(new JLabel(text(AdministrationResources.question_label)), secondaryCc.xy(1, 17)); secondarySignPanel.add(valueBinder.bind("secondarysign", actionBinder.bind("setQuestion", formQuestion2 = new JTextField()), new ValueBinder.Converter<RequiredSignatureValue, String>() { public String toComponent(RequiredSignatureValue value) { return value != null ? value.question().get() : ""; } }), secondaryCc.xy(1, 19)); refreshComponents.enabledOn("updatesecondarysign", formQuestion2); signPanel.add(secondarySignPanel.getPanel(), signPanelCc.xy(3, 1, CellConstraints.LEFT, CellConstraints.TOP)); builder.add(signPanel.getPanel(), new CellConstraints(1, 17, 3, 1, CellConstraints.FILL, CellConstraints.FILL, new Insets(0, 0, 0, 0))); JPanel templatePanel = new JPanel(); templatePanel.setVisible(false); FormLayout templateFormLayout = new FormLayout("75dlu, 5dlu, fill:p:grow", "pref, pref, fill:p:grow, pref"); DefaultFormBuilder templateFormBuilder = new DefaultFormBuilder(templateFormLayout, templatePanel); templateFormBuilder.addSeparator(text(AdministrationResources.emailTemplates)); templateFormBuilder.nextLine(); templateFormBuilder.append(text(AdministrationResources.subject), valueBinder.bind("subject", actionBinder.bind("changeSubject", subject = new JTextField()))); templateFormBuilder.nextLine(); templateFormBuilder.append(new JScrollPane(emailTemplateList)); templateFormBuilder.append(new JScrollPane(actionBinder.bind("save", emailTemplateText))); templateFormBuilder.nextLine(); emailTemplateList.addListSelectionListener(new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { if (!e.getValueIsAdjusting()) { if (emailTemplateList.getSelectedIndex() != -1) { emailTemplateText.setText(model.getAccessPointValue().messages().get() .get(emailTemplateList.getSelectedValue())); } } } }); refreshComponents.visibleOn("updatesecondarysign", templatePanel); builder.add(templatePanel, new CellConstraints(1, 19, 3, 1, CellConstraints.FILL, CellConstraints.FILL, new Insets(0, 0, 0, 0))); add(new JScrollPane(panel), BorderLayout.CENTER); new RefreshWhenShowing(this, this); }
From source file:se.streamsource.streamflow.client.ui.administration.templates.SelectedTemplatesView.java
License:Apache License
public SelectedTemplatesView(@Service ApplicationContext appContext, @Uses SelectedTemplatesModel model, @Structure Module module) {/* ww w .j av a2 s. c o m*/ this.model = model; model.addObserver(this); selectedTemplatesBinder = module.objectBuilderFactory().newObject(StateBinder.class); selectedTemplatesBinder.addObserver(this); selectedTemplatesBinder.addConverter(new StateBinder.Converter() { public Object toComponent(Object value) { if (value instanceof LinkValue) { return ((LinkValue) value).text().get(); } else return value; } public Object fromComponent(Object value) { return value; } }); selectedTemplatesBinder.setResourceMap(appContext.getResourceMap(getClass())); SelectedTemplatesDTO template = selectedTemplatesBinder.bindingTemplate(SelectedTemplatesDTO.class); defaultTemplate.getLabel().setFont(defaultTemplate.getLabel().getFont().deriveFont(Font.BOLD)); defaultTemplate.setPreferredSize(new Dimension(150, 25)); formTemplate.getLabel().setFont(formTemplate.getLabel().getFont().deriveFont(Font.BOLD)); formTemplate.setPreferredSize(new Dimension(150, 25)); caseTemplate.getLabel().setFont(caseTemplate.getLabel().getFont().deriveFont(Font.BOLD)); caseTemplate.setPreferredSize(new Dimension(150, 25)); FormLayout layout = new FormLayout("80dlu, 5dlu, 150:grow", "pref, 2dlu, pref, 2dlu, pref, 2dlu, pref:grow"); JPanel panel = new JPanel(layout); DefaultFormBuilder builder = new DefaultFormBuilder(layout, panel); builder.setBorder(Borders.createEmptyBorder(Sizes.DLUY8, Sizes.DLUX4, Sizes.DLUY2, Sizes.DLUX8)); CellConstraints cc = new CellConstraints(); setActionMap(appContext.getActionMap(this)); MacOsUIWrapper.convertAccelerators(appContext.getActionMap(SelectedTemplatesView.class, this)); ActionMap am = getActionMap(); // Select default template javax.swing.Action defaultTemplateAction = am.get("defaultTemplate"); defaultTemplateButton = new StreamflowButton(defaultTemplateAction); defaultTemplateButton.registerKeyboardAction(defaultTemplateAction, (KeyStroke) defaultTemplateAction.getValue(javax.swing.Action.ACCELERATOR_KEY), JComponent.WHEN_IN_FOCUSED_WINDOW); defaultTemplateButton.setHorizontalAlignment(SwingConstants.LEFT); builder.add(defaultTemplateButton, cc.xy(1, 3, CellConstraints.FILL, CellConstraints.TOP)); builder.add(selectedTemplatesBinder.bind(defaultTemplate, template.defaultPdfTemplate()), new CellConstraints(3, 3, 1, 1, CellConstraints.LEFT, CellConstraints.TOP, new Insets(3, 0, 0, 0))); // Select form template javax.swing.Action formTemplateAction = am.get("formTemplate"); formTemplateButton = new StreamflowButton(formTemplateAction); formTemplateButton.registerKeyboardAction(formTemplateAction, (KeyStroke) formTemplateAction.getValue(javax.swing.Action.ACCELERATOR_KEY), JComponent.WHEN_IN_FOCUSED_WINDOW); formTemplateButton.setHorizontalAlignment(SwingConstants.LEFT); builder.add(formTemplateButton, cc.xy(1, 5, CellConstraints.FILL, CellConstraints.TOP)); builder.add(selectedTemplatesBinder.bind(formTemplate, template.formPdfTemplate()), new CellConstraints(3, 5, 1, 1, CellConstraints.LEFT, CellConstraints.TOP, new Insets(3, 0, 0, 0))); // Select case template javax.swing.Action caseTemplateAction = am.get("caseTemplate"); caseTemplateButton = new StreamflowButton(caseTemplateAction); caseTemplateButton.registerKeyboardAction(caseTemplateAction, (KeyStroke) caseTemplateAction.getValue(javax.swing.Action.ACCELERATOR_KEY), JComponent.WHEN_IN_FOCUSED_WINDOW); caseTemplateButton.setHorizontalAlignment(SwingConstants.LEFT); builder.add(caseTemplateButton, cc.xy(1, 7, CellConstraints.FILL, CellConstraints.TOP)); builder.add(selectedTemplatesBinder.bind(caseTemplate, template.casePdfTemplate()), new CellConstraints(3, 7, 1, 1, CellConstraints.LEFT, CellConstraints.TOP, new Insets(3, 0, 0, 0))); add(panel, BorderLayout.CENTER); selectedTemplatesBinder.updateWith(model.getSelectedTemplatesValue()); new RefreshWhenShowing(this, model); }
From source file:se.streamsource.streamflow.client.ui.workspace.cases.caselog.CaseLogView.java
License:Apache License
public CaseLogView(@Service final ApplicationContext context, @Uses CaseLogModel logmodel) { this.model = logmodel; setActionMap(context.getActionMap(this)); // Load icons notPublishedIcon = icon(Icons.not_published, ICON_16); publishedIcon = icon(Icons.published, ICON_16); // Layout and form for the left panel FormLayout rightLayout = new FormLayout("30dlu, 300:grow, 50dlu, 20dlu", "pref, fill:pref:grow, 60dlu"); setLayout(rightLayout);// w w w .j av a 2 s. co m setFocusable(false); DefaultFormBuilder rightBuilder = new DefaultFormBuilder(rightLayout, this); rightBuilder.setBorder(Borders.createEmptyBorder(Sizes.DLUY2, Sizes.DLUX2, Sizes.DLUY2, Sizes.DLUX2)); JLabel caseLogLabel = new JLabel(i18n.text(WorkspaceResources.case_log)); rightBuilder.add(caseLogLabel, new CellConstraints(1, 1, 2, 1, CellConstraints.LEFT, CellConstraints.TOP, new Insets(0, 0, 0, 0))); rightBuilder.nextColumn(); filtersList = new SelectionList( Arrays.asList(system.name(), system_trace.name(), custom.name(), contact.name(), form.name(), conversation.name(), attachment.name()), model.getSelectedFilters(), new ValueToLabelConverter() { public String convert(String value) { return text(valueOf(value.toString())); } }, new ListSelectionListener() { public void valueChanged(ListSelectionEvent event) { if (!event.getValueIsAdjusting()) { String selectedValue = (String) ((JList) event.getSource()).getSelectedValue(); if (selectedValue != null) { if (model.getSelectedFilters().contains(selectedValue)) { model.getSelectedFilters().remove(selectedValue); } else { model.getSelectedFilters().add(selectedValue); } model.refresh(); ((JList) event.getSource()).clearSelection(); } } } }); filterPopupHandler = new StandardPopupHandler(CaseLogView.this, getActionMap().get("filter"), Position.right, false, new RefreshHandler() { public void refresh() { model.refresh(); list.ensureIndexIsVisible(list.getModel().getSize() - 1); } }); rightBuilder.add(filterPopupHandler.getButton(), new CellConstraints(3, 1, 1, 1, CellConstraints.RIGHT, CellConstraints.TOP, new Insets(0, 0, 0, 0))); filtersList.addFocusListener(new FocusAdapter() { @Override public void focusLost(FocusEvent e) { if (e.getOppositeComponent() != null && (e.getOppositeComponent().equals(filterPopupHandler.getButton()))) filterPopupHandler.kill(); } }); editButton = new StreamflowToggleButton(getActionMap().get("edit")); editButton.setMargin(new Insets(3, 7, 1, 5)); rightBuilder.add(editButton, new CellConstraints(4, 1, 1, 1, CellConstraints.RIGHT, CellConstraints.TOP, new Insets(0, 0, 0, 0))); // Caselog rightBuilder.nextLine(); ((JXList) list).addHighlighter(HighlighterFactory.createAlternateStriping()); list.setModel(new EventListModel<CaseLogEntryDTO>(model.caselogs())); list.setCellRenderer(new CaseLogListCellRenderer()); list.setFixedCellHeight(-1); list.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION); final JList tmpList = list; list.addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { if (e.isPopupTrigger()) { int index = tmpList.locationToIndex(new Point(e.getX(), e.getY())); if (tmpList.getSelectedIndex() != index) { tmpList.setSelectedIndex(index); } final JPopupMenu menu = new JPopupMenu(); JMenuItem item = new JMenuItem(); item.setAction(context.getActionMap().get("copy")); item.setIcon(null); menu.add(item); final int x = e.getX(); final int y = e.getY(); final Component c = e.getComponent(); SwingUtilities.invokeLater(new Runnable() { public void run() { menu.show(c, x, y); } }); } } }); scroll = new JScrollPane(list, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); scroll.setMinimumSize(new Dimension(250, 100)); scroll.setPreferredSize(new Dimension(400, 300)); rightBuilder.setExtent(3, 1); rightBuilder.add(scroll, new CellConstraints(1, 2, 4, 1, CellConstraints.FILL, CellConstraints.FILL, new Insets(0, 0, 0, 0))); // Add caselog message ImageIcon icon = i18n.icon(Icons.message_add, 24); rightBuilder.add(new JLabel(icon), new CellConstraints(1, 3, 1, 1, CellConstraints.LEFT, CellConstraints.TOP, new Insets(10, 10, 0, 0))); newMessageArea = new JTextArea(10, 30); newMessageArea.setLineWrap(true); newMessageArea.setWrapStyleWord(true); newMessagePane = new JScrollPane(newMessageArea); newMessagePane.setMinimumSize(new Dimension(10, 10)); newMessagePane.setPreferredSize(new Dimension(10, 70)); rightBuilder.add(newMessagePane, new CellConstraints(2, 3, 3, 1, CellConstraints.FILL, CellConstraints.TOP, new Insets(10, 0, 0, 0))); newMessageArea.addKeyListener(new KeyListener() { public void keyTyped(KeyEvent e) { } public void keyReleased(KeyEvent e) { if (e.getKeyCode() == 10) { if (!e.isControlDown()) { newMessageArea.setText(""); } } } public void keyPressed(KeyEvent e) { if (e.getKeyCode() == 10) { if (e.isControlDown()) { newMessageArea.append("\n"); } else { addMessage(); } } } }); listSelectionListener = new ListSelectionListener() { public void valueChanged(ListSelectionEvent event) { if (!event.getValueIsAdjusting()) { final CaseLogEntryDTO selectedValue = (CaseLogEntryDTO) ((JList) event.getSource()) .getSelectedValue(); if (selectedValue != null) { new CommandTask() { @Override protected void command() throws Exception { model.togglepublish(selectedValue); } }.execute(); ((JList) event.getSource()).clearSelection(); } } } }; addHierarchyListener(new HierarchyListener() { public void hierarchyChanged(HierarchyEvent e) { if ((e.getChangeFlags() & HierarchyEvent.SHOWING_CHANGED) != 0 && !isShowing() && editMode) { editButton.setSelected(false); configureComponentsForEdit(false); } } }); new RefreshWhenShowing(this, this); }
From source file:se.streamsource.streamflow.client.ui.workspace.cases.general.CaseGeneralView.java
License:Apache License
public CaseGeneralView(@Service ApplicationContext appContext, @Uses CaseGeneralModel generalModel, @Uses CaseLogView caseLogView, @Structure Module module) { this.appContext = appContext; this.model = generalModel; RefreshComponents refreshComponents = new RefreshComponents(); model.addObserver(refreshComponents); ObjectBuilderFactory obf = module.objectBuilderFactory(); this.labels = obf.newObjectBuilder(CaseLabelsView.class).use(generalModel.newLabelsModel()).newInstance(); this.caseNotes = obf.newObjectBuilder(CaseNoteView.class).use(generalModel.newCaseNoteModel()) .newInstance();/*from ww w . j a v a 2 s. c o m*/ RefreshComponents refreshLabelComponents = new RefreshComponents(); labels.getModel().addObserver(refreshLabelComponents); this.forms = obf.newObjectBuilder(PossibleFormsView.class).use(generalModel.newPossibleFormsModel()) .newInstance(); refreshComponents.visibleOn("changedescription", forms); this.setBorder(BorderFactory.createEmptyBorder()); getVerticalScrollBar().setUnitIncrement(30); setActionMap(appContext.getActionMap(this)); ActionMap am = getActionMap(); MacOsUIWrapper.convertAccelerators(appContext.getActionMap(CaseGeneralView.class, this)); actionBinder = obf.newObjectBuilder(ActionBinder.class).use(am).newInstance(); valueBinder = obf.newObject(ValueBinder.class); actionBinder.setResourceMap(appContext.getResourceMap(getClass())); // Layout and form for the right panel FormLayout leftLayout = new FormLayout("70dlu, 2dlu, 200:grow, 70dlu", "pref, pref, pref, pref, 20dlu, pref, pref, pref, pref"); leftPane = new JPanel(leftLayout); leftPane.setFocusable(false); DefaultFormBuilder leftBuilder = new DefaultFormBuilder(leftLayout, leftPane); leftBuilder.setBorder(Borders.createEmptyBorder(Sizes.DLUY2, Sizes.DLUX2, Sizes.DLUY2, Sizes.DLUX11)); selectedCaseType.getLabel().setFont(selectedCaseType.getLabel().getFont().deriveFont(Font.BOLD)); selectedCaseType.getButton().addActionListener(am.get("removeCaseType")); valueBinder.bind("caseType", selectedCaseType); // Description & DueDate leftBuilder.setExtent(3, 1); JLabel descriptionLabel = leftBuilder.getComponentFactory() .createLabel(i18n.text(WorkspaceResources.description_label)); leftBuilder.add(descriptionLabel); descriptionLabel.setBorder(BorderFactory.createEmptyBorder(0, 2, 0, 0)); leftBuilder.nextColumn(3); JLabel dueOnLabel = leftBuilder.append(i18n.text(WorkspaceResources.due_on_label)); dueOnLabel.setBorder(BorderFactory.createEmptyBorder(0, 2, 0, 0)); leftBuilder.nextLine(); leftBuilder.setExtent(3, 1); JPanel descPanel = new JPanel(new BorderLayout()); descPanel.add(valueBinder.bind("description", actionBinder.bind("changeDescription", descriptionField = (JTextField) TEXTFIELD.newField())), BorderLayout.WEST); leftBuilder.add(descPanel); descriptionField.setName("txtCaseDescription"); leftBuilder.add( valueBinder.bind("dueOn", actionBinder.bind("changeDueOn", dueOnField = (JXDatePicker) DATEPICKER.newField())), new CellConstraints(4, 2, 1, 1, CellConstraints.LEFT, CellConstraints.BOTTOM, new Insets(4, 0, 0, 0))); leftBuilder.nextLine(); descriptionLabel.setLabelFor(descriptionField); dueOnLabel.setLabelFor(dueOnField); refreshComponents.enabledOn("changedescription", descriptionField); refreshComponents.enabledOn("changedueon", dueOnField); // Select case type javax.swing.Action caseTypeAction = am.get("changeCaseType"); caseTypeButton = new StreamflowButton(caseTypeAction); caseTypeButton.registerKeyboardAction(caseTypeAction, (KeyStroke) caseTypeAction.getValue(javax.swing.Action.ACCELERATOR_KEY), JComponent.WHEN_IN_FOCUSED_WINDOW); caseTypeButton.setHorizontalAlignment(SwingConstants.LEFT); refreshComponents.enabledOn("casetype", caseTypeButton, selectedCaseType); leftBuilder.add(caseTypeButton, new CellConstraints(1, 3, 1, 1, CellConstraints.FILL, CellConstraints.TOP, new Insets(2, 0, 5, 0))); leftBuilder.add(selectedCaseType, new CellConstraints(3, 3, 1, 1, CellConstraints.LEFT, CellConstraints.BOTTOM, new Insets(5, 5, 0, 0))); JLabel priorityLabel = leftBuilder.getComponentFactory() .createLabel(i18n.text(WorkspaceResources.priority_label)); priorityLabel.setBorder(BorderFactory.createEmptyBorder(0, 2, 0, 0)); leftBuilder.add(priorityLabel, new CellConstraints(4, 3, 1, 1, CellConstraints.FILL, CellConstraints.BOTTOM, new Insets(4, 0, 0, 0))); leftBuilder.nextLine(); // Select labels javax.swing.Action labelAction = labels.getActionMap().get("addLabel"); labelButton = new StreamflowButton(labelAction); // NotificationGlassPane.registerButton(labelButton); labelButton.registerKeyboardAction(labelAction, (KeyStroke) labelAction.getValue(javax.swing.Action.ACCELERATOR_KEY), JComponent.WHEN_IN_FOCUSED_WINDOW); labelButton.setHorizontalAlignment(SwingConstants.LEFT); labels.setButtonRelation(labelButton); refreshLabelComponents.enabledOn("addlabel", labelButton, labels); leftBuilder.add(labelButton, new CellConstraints(1, 4, 1, 1, CellConstraints.FILL, CellConstraints.TOP, new Insets(5, 0, 0, 0))); labels.setPreferredSize(new Dimension(500, 50)); leftBuilder.add(labels, new CellConstraints(3, 4, 1, 1, CellConstraints.LEFT, CellConstraints.TOP, new Insets(5, 0, 0, 0))); JPanel prioPanel = new JPanel(new BorderLayout()); prioPanel.add(valueBinder.bind("priority", actionBinder.bind("changePriority", casePriority = (JComboBox) COMBOBOX.newField()))); leftBuilder.add(prioPanel, new CellConstraints(4, 4, 1, 1, CellConstraints.FILL, CellConstraints.TOP, new Insets(2, 0, 0, 0))); priorityLabel.setLabelFor(casePriority); refreshComponents.visibleOn("changepriority", casePriority, priorityLabel); refreshComponents.enabledOn("changepriority", casePriority, priorityLabel); casePriority.setRenderer(new DefaultListCellRenderer() { public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { final PriorityValue itemValue = (PriorityValue) value; String val = itemValue == null ? "" : itemValue.text().get(); JPanel panel = new JPanel(); panel.setOpaque(false); FormLayout layout = new FormLayout("10dlu, 60dlu:grow", "pref"); DefaultFormBuilder formBuilder = new DefaultFormBuilder(layout, panel); panel.setBorder(BorderFactory.createEmptyBorder(2, 0, 1, 0)); JLabel label = new JLabel() { @Override protected void paintComponent(Graphics g) { Color color = getBackground(); if (itemValue != null) { if (!Strings.empty(itemValue.color().get())) color = new Color(parseInt(itemValue.color().get())); else color = Color.BLACK; } final Color FILL_COLOR = ColorUtil.removeAlpha(color); Graphics2D g2 = (Graphics2D) g.create(); try { g2.setRenderingHint(KEY_ANTIALIASING, VALUE_ANTIALIAS_ON); g2.setColor(Color.LIGHT_GRAY); final int DIAM = Math.min(getWidth(), getHeight()); final int inset = 3; g2.fill(new Ellipse2D.Float(inset, inset, DIAM - 2 * inset, DIAM - 2 * inset)); g2.setColor(FILL_COLOR); final int border = 1; g2.fill(new Ellipse2D.Float(inset + border, inset + border, DIAM - 2 * inset - 2 * border, DIAM - 2 * inset - 2 * border)); } finally { g2.dispose(); } } }; label.setPreferredSize(new Dimension(10, 10)); formBuilder.add((Strings.empty(val) || "-".equals(val)) ? new JLabel() : label, new CellConstraints( 1, 1, 1, 1, CellConstraints.FILL, CellConstraints.FILL, new Insets(0, 0, 0, 0))); JLabel text = new JLabel(val); formBuilder.add(text, new CellConstraints(2, 1, 1, 1, CellConstraints.LEFT, CellConstraints.FILL, new Insets(0, 0, 0, 0))); return panel; } }); leftBuilder.nextLine(); leftBuilder.add(caseNotes, new CellConstraints(1, 6, 4, 1, CellConstraints.FILL, CellConstraints.TOP, new Insets(0, 2, 5, 0))); // Forms JLabel formsLabel = new JLabel(i18n.text(WorkspaceResources.forms_label)); refreshComponents.visibleOn("changedescription", formsLabel); leftBuilder.add(formsLabel, new CellConstraints(1, 7, 1, 1, CellConstraints.LEFT, CellConstraints.TOP, new Insets(5, 0, 0, 0))); leftBuilder.nextLine(); JPanel formsPanel = new JPanel(new BorderLayout()); formsPanel.add(forms, BorderLayout.WEST); leftBuilder.add(formsPanel, new CellConstraints(1, 8, 3, 1, CellConstraints.FILL, CellConstraints.FILL, new Insets(5, 0, 0, 0))); // Limit pickable dates to future Calendar calendar = Calendar.getInstance(); calendar.setTime(new Date()); calendar.add(Calendar.DAY_OF_MONTH, 1); dueOnField.getMonthView().setLowerBound(calendar.getTime()); final DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.SHORT); dateFormat.setTimeZone(TimeZone.getTimeZone("UTC")); dueOnField.getEditor().setFormatterFactory( new DefaultFormatterFactory(new DatePickerFormatter(new DateFormat[] { dateFormat }) { @Override public Object stringToValue(String text) throws ParseException { Object result; try { result = super.stringToValue(text); } catch (ParseException pe) { dialogs.showMessageDialog(dueOnField, text(WorkspaceResources.wrong_format_msg) + " " + ((SimpleDateFormat) dateFormat).toPattern(), text(WorkspaceResources.wrong_format_title)); throw pe; } return result; } })); // Main panel that contains both left and right pane JPanel formsContainer = new JPanel(); formsContainer.setLayout(new GridLayout(1, 2)); formsContainer.setBorder(Borders.createEmptyBorder("2dlu, 2dlu, 2dlu, 2dlu")); formsContainer.add(leftPane); formsContainer.add(caseLogView); setViewportView(formsContainer); setFocusTraversalPolicy(new LayoutFocusTraversalPolicy()); setFocusCycleRoot(true); setFocusable(true); new RefreshWhenShowing(this, this); }
From source file:tvbrowserdataservice.TvBrowserDataServiceSettingsPanel.java
License:Open Source License
protected TvBrowserDataServiceSettingsPanel(TvBrowserDataServiceSettings settings) { mSettings = settings;// w w w . j av a2 s . co m setLayout(new FormLayout("200dlu:grow", "fill:150dlu:grow")); setBorder(Borders.createEmptyBorder(Sizes.DLUY5, Sizes.DLUX5, Sizes.DLUY5, Sizes.DLUX5)); JTabbedPane tabbedPane = new JTabbedPane(); /* level list pane */ CellConstraints cc = new CellConstraints(); EnhancedPanelBuilder levelList = new EnhancedPanelBuilder("5dlu,default:grow"); levelList.setDefaultDialogBorder(); levelList.addRow(); levelList.addSeparator(mLocalizer.msg("downloadLevel", "Download this data"), cc.xyw(1, levelList.getRow(), 2)); TvDataLevel[] levelArr = DayProgramFile.getLevels(); String[] levelIds = settings.getLevelIds(); mLevelCheckboxes = new JCheckBox[levelArr.length]; for (int i = 0; i < levelArr.length; i++) { mLevelCheckboxes[i] = new JCheckBox(levelArr[i].getDescription()); levelList.addRow(); levelList.add(mLevelCheckboxes[i], cc.xy(2, levelList.getRow())); if (levelArr[i].isRequired()) { mLevelCheckboxes[i].setSelected(true); mLevelCheckboxes[i].setEnabled(false); } else { for (String levelId : levelIds) { if (levelId.equals(levelArr[i].getId())) { mLevelCheckboxes[i].setSelected(true); } } } } /* group list pane */ EnhancedPanelBuilder groupListPanel = new EnhancedPanelBuilder("5dlu,0dlu:grow"); groupListPanel.setDefaultDialogBorder(); JTextArea ta = UiUtilities.createHelpTextArea(mLocalizer.msg("channelgroup.description", "description")); groupListPanel.addRow(); groupListPanel.add(ta, cc.xyw(1, groupListPanel.getRow(), 2)); JPanel panel2 = new JPanel(new BorderLayout(10, 0)); mGroupListModel = new DefaultListModel(); mGroupList = new JList(mGroupListModel); mGroupList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); panel2.add(new JScrollPane(mGroupList), BorderLayout.CENTER); JPanel panel3 = new JPanel(new BorderLayout()); JPanel btnPn = new JPanel(); btnPn.setLayout(new GridLayout(0, 1, 0, 4)); mAddBtn = new JButton(Localizer.getLocalization(Localizer.I18N_ADD), TVBrowserIcons.newIcon(TVBrowserIcons.SIZE_SMALL)); mRemoveBtn = new JButton(mLocalizer.msg("remove", "Remove"), TVBrowserIcons.delete(TVBrowserIcons.SIZE_SMALL)); mInfoBtn = new JButton("Information", AbstractTvDataService.getPluginManager().getIconFromTheme(null, "actions", "help-browser", 16)); mAddBtn.setHorizontalAlignment(SwingConstants.LEFT); mRemoveBtn.setHorizontalAlignment(SwingConstants.LEFT); mInfoBtn.setHorizontalAlignment(SwingConstants.LEFT); btnPn.add(mAddBtn); btnPn.add(mRemoveBtn); btnPn.add(mInfoBtn); mAddBtn.addActionListener(this); mRemoveBtn.addActionListener(this); mInfoBtn.addActionListener(this); panel3.add(btnPn, BorderLayout.NORTH); panel2.add(panel3, BorderLayout.EAST); JPanel groupInfoPanel = new JPanel(new BorderLayout(3, 0)); JPanel westPn = new JPanel(new BorderLayout()); westPn.add(new JLabel(mLocalizer.msg("description", "Description:")), BorderLayout.NORTH); groupInfoPanel.add(westPn, BorderLayout.WEST); mGroupDescriptionTA = UiUtilities.createHelpTextArea(""); mGroupDescriptionTA.setPreferredSize(new Dimension(0, 40)); groupInfoPanel.add(mGroupDescriptionTA, BorderLayout.CENTER); groupListPanel.addGrowingRow(); groupListPanel.add(panel2, cc.xy(2, groupListPanel.getRow())); groupListPanel.addRow(); groupListPanel.add(groupInfoPanel, cc.xy(2, groupListPanel.getRow())); tabbedPane.add(mLocalizer.msg("datalevel", "data level"), levelList.getPanel()); tabbedPane.add(mLocalizer.msg("channelgroups", "channel groups"), groupListPanel.getPanel()); add(tabbedPane, cc.xy(1, 1)); mGroupList.addListSelectionListener(new ListSelectionListener() { public void valueChanged(ListSelectionEvent arg0) { mRemoveBtn.setEnabled(mGroupList.getSelectedIndex() >= 0); mInfoBtn.setEnabled(mGroupList.getSelectedIndex() >= 0); TvBrowserDataServiceChannelGroup group = (TvBrowserDataServiceChannelGroup) mGroupList .getSelectedValue(); if (group == null) { mGroupDescriptionTA.setText(""); } else { mGroupDescriptionTA.setText(group.getDescription()); } } }); mRemoveBtn.setEnabled(mGroupList.getSelectedIndex() >= 0); mInfoBtn.setEnabled(mGroupList.getSelectedIndex() >= 0); fillGroupList(TvBrowserDataService.getInstance().getUserDefinedChannelGroups()); }
From source file:uk.ac.ebi.mnb.menu.build.MassChargeBalanceDialog.java
License:Open Source License
private void layoutForm() { FormLayout layout = new FormLayout("40dlu, 4dlu, 40dlu, 4dlu, 40dlu", "p, 2dlu, p, 4dlu, p, 2dlu, p, 2dlu, p"); PanelBuilder builder = new PanelBuilder(layout); builder.setBorder(Borders.createEmptyBorder(Sizes.DLUX4, Sizes.DLUX4, Sizes.DLUX4, Sizes.DLUX4)); CellConstraints cc = new CellConstraints(); builder.add(new JLabel("Balancing Molecules"), cc.xyw(1, 1, 5)); builder.add(new JSeparator(), cc.xyw(1, 3, 5)); builder.add(protonCheckBox, cc.xy(1, 5)); builder.add(waterCheckBox, cc.xy(3, 5)); builder.add(oxygenCheckBox, cc.xy(5, 5)); builder.add(new JSeparator(), cc.xyw(1, 7, 5)); builder.add(getClose(), cc.xy(3, 9)); builder.add(getActivate(), cc.xy(5, 9)); add(builder.getPanel());//w w w. j a va 2 s . com }
From source file:virtualdataservice.VirtualDataServiceSettingsPanel.java
License:Open Source License
public VirtualDataServiceSettingsPanel(final String workingDirectory) { mChannelManager = new VirtualChannelManager(workingDirectory); setLayout(new BorderLayout()); setBorder(Borders.createEmptyBorder(Sizes.DLUY5, Sizes.DLUX5, Sizes.DLUY5, Sizes.DLUX5)); final FormLayout layout = new FormLayout("5dlu, default, 3dlu, pref, 5dlu", "5dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, pref:grow, 10dlu, pref, 2dlu, pref, 2dlu, pref, 2dlu, pref, pref:grow"); final PanelBuilder builder = new PanelBuilder(layout); builder.setBorder(null);// www . j a v a 2 s . co m final CellConstraints cc = new CellConstraints(); mChannels = new DefaultListModel(); mChannelList = new JList(mChannels); mChannelList.addListSelectionListener(new ListSelectionListener() { public void valueChanged(final ListSelectionEvent e) { setChannelButtons(true); loadProgram(getChannel()); } }); mChannelList.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION); final JScrollPane scrollChannel = new JScrollPane(mChannelList); mPrograms = new ProgramTableModel(); mPrograms.addColumn(" "); mPrograms.addColumn(mLocalizer.msg("start", "Start")); mPrograms.addColumn(mLocalizer.msg("title", "Title")); mProgramList = new JTable(mPrograms); mProgramList.getSelectionModel().addListSelectionListener(new ListSelectionListener() { public void valueChanged(final ListSelectionEvent evt) { setProgramButtons(true, true); } }); mProgramList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); mProgramList.getColumnModel().getColumn(0).setMaxWidth(Sizes.dialogUnitXAsPixel(10, mProgramList)); final JScrollPane scrollProgram = new JScrollPane(mProgramList); mChannelAdd = new JButton(Localizer.getLocalization(Localizer.I18N_ADD), Plugin.getPluginManager().getIconFromTheme(null, "actions", "document-new", 16)); mChannelAdd.setToolTipText(mLocalizer.msg("addChannel", "Add channel")); mChannelAdd.setHorizontalAlignment(SwingConstants.LEFT); mChannelAdd.addActionListener(this); mChannelDel = new JButton(Localizer.getLocalization(Localizer.I18N_DELETE), Plugin.getPluginManager().getIconFromTheme(null, "actions", "edit-delete", 16)); mChannelDel.setToolTipText(mLocalizer.msg("delChannel", "Delete channel")); mChannelDel.setHorizontalAlignment(SwingConstants.LEFT); mChannelDel.setEnabled(false); mChannelDel.addActionListener(this); mChannelEdit = new JButton(Localizer.getLocalization(Localizer.I18N_EDIT), Plugin.getPluginManager().getIconFromTheme(null, "actions", "document-edit", 16)); mChannelEdit.setToolTipText(mLocalizer.msg("editChannel", "Edit channel")); mChannelEdit.setHorizontalAlignment(SwingConstants.LEFT); mChannelEdit.setEnabled(false); mChannelEdit.addActionListener(this); mProgramAdd = new JButton(Localizer.getLocalization(Localizer.I18N_ADD), Plugin.getPluginManager().getIconFromTheme(null, "actions", "document-new", 16)); mProgramAdd.setToolTipText(mLocalizer.msg("addProgram", "Add program")); mProgramAdd.setHorizontalAlignment(SwingConstants.LEFT); mProgramAdd.setEnabled(false); mProgramAdd.addActionListener(this); mProgramDel = new JButton(Localizer.getLocalization(Localizer.I18N_DELETE), Plugin.getPluginManager().getIconFromTheme(null, "actions", "edit-delete", 16)); mProgramDel.setToolTipText(mLocalizer.msg("delProgram", "Delete program")); mProgramDel.setHorizontalAlignment(SwingConstants.LEFT); mProgramDel.setEnabled(false); mProgramDel.addActionListener(this); mProgramEdit = new JButton(Localizer.getLocalization(Localizer.I18N_EDIT), Plugin.getPluginManager().getIconFromTheme(null, "actions", "document-edit", 16)); mProgramEdit.setToolTipText(mLocalizer.msg("editProgram", "Edit program")); mProgramEdit.setHorizontalAlignment(SwingConstants.LEFT); mProgramEdit.setEnabled(false); mProgramEdit.addActionListener(this); int row = 2; builder.addLabel(Localizer.getLocalization(Localizer.I18N_CHANNEL), cc.xyw(2, row, 3)); row += 2; builder.add(scrollChannel, cc.xywh(2, row, 1, 6)); builder.add(mChannelAdd, cc.xy(4, row)); row += 2; builder.add(mChannelDel, cc.xy(4, row)); row += 2; builder.add(mChannelEdit, cc.xy(4, row)); row += 3; builder.addLabel(Localizer.getLocalization(Localizer.I18N_PROGRAM), cc.xyw(2, row, 3)); row += 2; builder.add(scrollProgram, cc.xywh(2, row, 1, 6)); builder.add(mProgramAdd, cc.xy(4, row)); row += 2; builder.add(mProgramDel, cc.xy(4, row)); row += 2; builder.add(mProgramEdit, cc.xy(4, row)); add(builder.getPanel(), BorderLayout.CENTER); loadChannel(); }