List of usage examples for com.jgoodies.forms.layout CellConstraints LEFT
Alignment LEFT
To view the source code for com.jgoodies.forms.layout CellConstraints LEFT.
Click Source Link
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) {/*from ww w .j av a 2 s . 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.surface.EmailAccessPointView.java
License:Apache License
public void init(@Service ApplicationContext context, @Uses final EmailAccessPointModel model) { setActionMap(context.getActionMap(this)); JPanel panel = new JPanel(); this.setViewportView(panel); this.model = model; this.labels = module.objectBuilderFactory().newObjectBuilder(CaseLabelsView.class) .use(model.createLabelsModel()).newInstance(); FormLayout layout = new FormLayout("75dlu, 5dlu, fill:p:grow", "pref, pref, pref, pref, pref, fill:p:grow, pref"); DefaultFormBuilder formBuilder = new DefaultFormBuilder(layout, panel); formBuilder.append(projectButton = new StreamflowButton(getActionMap().get("project"))); formBuilder.append(project = new JLabel()); formBuilder.nextLine();/*from w w w . j a v a 2 s . c o m*/ formBuilder.append(casetypeButton = new StreamflowButton(getActionMap().get("casetype"))); formBuilder.add(casetype, new CellConstraints(3, 2, 1, 1, CellConstraints.LEFT, CellConstraints.CENTER, new Insets(3, 0, 0, 0))); formBuilder.nextLine(); formBuilder.append(labelsButton = new StreamflowButton(labels.getActionMap().get("addLabel"))); formBuilder.add(labels, new CellConstraints(3, 3, 1, 1, CellConstraints.LEFT, CellConstraints.CENTER, new Insets(3, -3, 0, 0))); formBuilder.nextLine(); formBuilder.addSeparator(i18n.text(AdministrationResources.emailTemplates)); formBuilder.nextLine(); formBuilder.append(i18n.text(AdministrationResources.subject), subject = new JTextField()); formBuilder.nextLine(); formBuilder.append(new JScrollPane(emailTemplateList)); formBuilder.append(new JScrollPane(emailTemplateText)); formBuilder.nextLine(); emailTemplateList.addListSelectionListener(new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { if (!e.getValueIsAdjusting()) { if (emailTemplateList.getSelectedIndex() != -1) { emailTemplateText.setText( model.getValue().messages().get().get(emailTemplateList.getSelectedValue())); } } } }); ActionBinder actionBinder = new ActionBinder(getActionMap()); actionBinder.bind("save", emailTemplateText); actionBinder.bind("changeSubject", subject); actionBinder.bind("removecasetype", casetype); 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) {/*w ww .j a v a 2 s.co 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.CaseLogListCellRenderer.java
License:Apache License
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { CaseLogEntryDTO entry = (CaseLogEntryDTO) value; JPanel renderer = new JPanel(new BorderLayout()); FormLayout rowLayout = new FormLayout("30dlu, pref:grow, pref", "pref, fill:pref:grow"); renderer.setLayout(rowLayout);//from w w w . jav a 2 s .c o m DefaultFormBuilder formBuilder = new DefaultFormBuilder(rowLayout, renderer); renderer.setBorder(new EmptyBorder(3, 3, 6, 3)); // Icons JPanel icons = new JPanel(new BorderLayout()); icons.setOpaque(false); if (entry.myPagesVisibility().get()) { icons.add(myPagesPublishedIcon, BorderLayout.WEST); } switch (entry.caseLogType().get()) { case system: icons.add(systemIcon, BorderLayout.EAST); break; case custom: icons.add(customIcon, BorderLayout.EAST); break; case contact: icons.add(contactIcon, BorderLayout.EAST); break; case form: icons.add(formIcon, BorderLayout.EAST); break; case conversation: icons.add(conversationIcon, BorderLayout.EAST); break; case attachment: icons.add(attachmentIcon, BorderLayout.EAST); break; default: break; } formBuilder.add(icons, new CellConstraints(1, 1, 1, 2, CellConstraints.RIGHT, CellConstraints.TOP, new Insets(0, 0, 0, 10))); // User JLabel user = new JLabel(entry.creator().get()); user.setForeground(Color.GRAY); formBuilder.add(user, new CellConstraints(2, 1, 1, 1, CellConstraints.LEFT, CellConstraints.TOP)); // Date JLabel date = new JLabel( DateFormats.getProgressiveDateTimeValue(entry.creationDate().get(), Locale.getDefault())); date.setForeground(Color.GRAY); formBuilder.add(date, new CellConstraints(3, 1, 1, 1, CellConstraints.RIGHT, CellConstraints.TOP)); // Message String entryMessage = entry.message().get(); if (!Strings.empty(entryMessage)) { entryMessage = String.format("<html><div WIDTH=%d>%s</div><html>", 500, entryMessage.trim().replace("\n", "<br>")); } JLabel message = new JLabel(entryMessage); message.setForeground(Color.BLACK); formBuilder.add(message, new CellConstraints(2, 2, 2, 1, CellConstraints.LEFT, CellConstraints.TOP)); return renderer; }
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);/*from w ww . j a v a 2 s.c om*/ 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.contacts.ContactView.java
License:Apache License
public ContactView(@Service ApplicationContext appContext, @Structure Module module) { setLayout(layout);/*from w ww .ja v a2 s . c o m*/ context = appContext; setActionMap(context.getActionMap(this)); add(new JLabel(), "EMPTY"); DefaultComboBoxModel contactPreferenceModel = new DefaultComboBoxModel(); for (ContactPreference preference : ContactPreference.values()) { contactPreferenceModel.addElement(preference); } contactPreferenceField.setModel(contactPreferenceModel); contactPreferenceField.setSelectedIndex(0); contactPreferenceField.setRenderer(new ListCellRenderer() { public Component getListCellRendererComponent(JList jList, Object o, int i, boolean b, boolean b1) { JLabel comp = new JLabel("null"); if (o instanceof ContactPreference) { if (((ContactPreference) o) == ContactPreference.none) { comp = new JLabel(" "); } else { comp = new JLabel(i18n.text(WorkspaceResources.valueOf(((ContactPreference) o).name()))); } } comp.setBorder(BorderFactory.createEmptyBorder(2, 4, 2, 0)); return comp; } }); viewBinder = module.objectBuilderFactory().newObject(ValueBinder.class); phoneViewBinder = module.objectBuilderFactory().newObject(ValueBinder.class); addressViewBinder = module.objectBuilderFactory().newObject(ValueBinder.class); emailViewBinder = module.objectBuilderFactory().newObject(ValueBinder.class); suggestModel = new StreetAddressSuggestModel(); suggestAddress = new StreetAddressSuggestTextField(suggestModel, cityField, addressViewBinder); addressField = suggestAddress.getTextField(); // Edit panel { FormLayout formLayout = new FormLayout("right:70dlu, 5dlu, 150dlu:grow", "pref, pref, pref, pref, pref, pref, pref, pref, pref, pref, pref, pref, 5dlu, top:70dlu:grow, pref, pref"); this.setBorder(Borders.createEmptyBorder("2dlu, 2dlu, 2dlu, 2dlu")); form = new JPanel(); JScrollPane scrollPane = new JScrollPane(form); scrollPane.getVerticalScrollBar().setUnitIncrement(30); scrollPane.setBorder(BorderFactory.createEmptyBorder()); DefaultFormBuilder builder = new DefaultFormBuilder(formLayout, form); contactBinder = module.objectBuilderFactory().newObject(StateBinder.class); contactBinder.setResourceMap(context.getResourceMap(getClass())); ContactDTO template = contactBinder.bindingTemplate(ContactDTO.class); phoneNumberBinder = module.objectBuilderFactory().newObject(StateBinder.class); phoneNumberBinder.setResourceMap(context.getResourceMap(getClass())); ContactPhoneDTO phoneTemplate = phoneNumberBinder.bindingTemplate(ContactPhoneDTO.class); addressBinder = module.objectBuilderFactory().newObject(StateBinder.class); addressBinder.setResourceMap(context.getResourceMap(getClass())); ContactAddressDTO addressTemplate = addressBinder.bindingTemplate(ContactAddressDTO.class); emailBinder = module.objectBuilderFactory().newObject(StateBinder.class); emailBinder.setResourceMap(context.getResourceMap(getClass())); ContactEmailDTO emailTemplate = emailBinder.bindingTemplate(ContactEmailDTO.class); builder.add(new StreamflowButton(getActionMap().get("view"))); builder.nextLine(); builder.add(createLabel(WorkspaceResources.name_label)); builder.nextColumn(2); builder.add(contactBinder.bind(defaultFocusField = (JTextField) TEXTFIELD.newField(), template.name())); builder.nextLine(); builder.add(createLabel(WorkspaceResources.phone_label)); builder.nextColumn(2); builder.add(phoneNumberBinder.bind(phoneField, phoneTemplate.phoneNumber())); builder.nextLine(); builder.add(createLabel(WorkspaceResources.address_label)); builder.nextColumn(2); builder.add(suggestAddress); builder.nextLine(); builder.add(createLabel(WorkspaceResources.zip_label)); builder.nextColumn(2); builder.add(addressBinder.bind(zipField, addressTemplate.zipCode())); builder.nextLine(); builder.add(createLabel(WorkspaceResources.city_label)); builder.nextColumn(2); builder.add(addressBinder.bind(cityField, addressTemplate.city())); builder.nextLine(); builder.add(createLabel(WorkspaceResources.region_label)); builder.nextColumn(2); builder.add(addressBinder.bind(regionField, addressTemplate.region())); builder.nextLine(); builder.add(createLabel(WorkspaceResources.country_label)); builder.nextColumn(2); builder.add(addressBinder.bind(countryField, addressTemplate.country())); builder.nextLine(); builder.add(createLabel(WorkspaceResources.email_label)); builder.nextColumn(2); builder.add(emailBinder.bind(emailField, emailTemplate.emailAddress())); builder.nextLine(); builder.add(createLabel(WorkspaceResources.contact_id_label)); builder.nextColumn(2); builder.add(contactBinder.bind(contactIdField, template.contactId())); builder.nextLine(); builder.add(createLabel(WorkspaceResources.company_label)); builder.nextColumn(2); builder.add(contactBinder.bind(companyField, template.company())); builder.nextLine(); builder.add(createLabel(WorkspaceResources.contact_preference_label)); builder.nextColumn(2); builder.add(contactBinder.bind(contactPreferenceField, template.contactPreference()), new CellConstraints(3, 12, 1, 1, CellConstraints.LEFT, CellConstraints.TOP, new Insets(5, 0, 0, 0))); builder.nextLine(2); builder.add(createLabel(WorkspaceResources.note_label)); builder.nextColumn(2); builder.add(contactBinder.bind(TEXTAREA.newField(), template.note())); builder.nextLine(2); builder.nextColumn(2); lookupPanel = new JPanel(new FlowLayout(FlowLayout.CENTER)); lookupPanel.add(new StreamflowButton(getActionMap().get("lookupContact"))); builder.add(lookupPanel); contactBinder.addObserver(this); phoneNumberBinder.addObserver(this); addressBinder.addObserver(this); emailBinder.addObserver(this); add(scrollPane, "EDIT"); } // View panel { FormLayout formLayout = new FormLayout("right:70dlu, 5dlu, 150dlu:grow", "pref, pref, pref, pref, pref, pref, pref, pref, pref, pref, pref, pref, 5dlu, top:70dlu:grow, pref, pref"); this.setBorder(Borders.createEmptyBorder("2dlu, 2dlu, 2dlu, 2dlu")); form = new JPanel(); JScrollPane scrollPane = new JScrollPane(form); scrollPane.getVerticalScrollBar().setUnitIncrement(30); scrollPane.setBorder(BorderFactory.createEmptyBorder()); DefaultFormBuilder builder = new DefaultFormBuilder(formLayout, form); builder.add(new StreamflowButton(getActionMap().get("edit"))); builder.nextLine(); builder.add(createLabel(WorkspaceResources.name_label)); builder.nextColumn(2); builder.add(viewBinder.bind("name", visibleIfNotEmpty(new JLabel("!")))); builder.nextLine(); builder.add(createLabel(WorkspaceResources.phone_label)); builder.nextColumn(2); builder.add(phoneViewBinder.bind("phoneNumber", visibleIfNotEmpty(new JLabel("!")))); builder.nextLine(); builder.add(createLabel(WorkspaceResources.address_label)); builder.nextColumn(2); builder.add(addressViewBinder.bind("address", visibleIfNotEmpty(new JLabel("!")))); builder.nextLine(); builder.add(createLabel(WorkspaceResources.zip_label)); builder.nextColumn(2); builder.add(addressViewBinder.bind("zipCode", visibleIfNotEmpty(new JLabel("!")))); builder.nextLine(); builder.add(createLabel(WorkspaceResources.city_label)); builder.nextColumn(2); builder.add(addressViewBinder.bind("city", visibleIfNotEmpty(new JLabel("!")))); builder.nextLine(); builder.add(createLabel(WorkspaceResources.region_label)); builder.nextColumn(2); builder.add(addressViewBinder.bind("region", visibleIfNotEmpty(new JLabel("!")))); builder.nextLine(); builder.add(createLabel(WorkspaceResources.country_label)); builder.nextColumn(2); builder.add(addressViewBinder.bind("country", visibleIfNotEmpty(new JLabel("!")))); builder.nextLine(); builder.add(createLabel(WorkspaceResources.email_label)); builder.nextColumn(2); builder.add(emailViewBinder.bind("emailAddress", visibleIfNotEmpty(new JLabel("!")))); builder.nextLine(); builder.add(createLabel(WorkspaceResources.contact_id_label)); builder.nextColumn(2); builder.add(viewBinder.bind("contactId", visibleIfNotEmpty(new JLabel("!")))); builder.nextLine(); builder.add(createLabel(WorkspaceResources.company_label)); builder.nextColumn(2); builder.add(viewBinder.bind("company", visibleIfNotEmpty(new JLabel("!")))); builder.nextLine(); builder.add(createLabel(WorkspaceResources.contact_preference_label)); builder.nextColumn(2); builder.add(contactPreferenceLabel); builder.nextLine(2); builder.add(createLabel(WorkspaceResources.note_label)); builder.nextColumn(2); builder.add(viewBinder.bind("note", visibleIfNotEmpty(new JLabel("!")))); add(scrollPane, "VIEW"); } }
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 www.j av a 2s . com*/ 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:se.streamsource.streamflow.client.ui.workspace.table.CasesTableView.java
License:Apache License
public void init(final @Service ApplicationContext context, @Uses CasesTableModel casesTableModel, final @Uses TableFormat tableFormat, @Optional @Uses JTextField searchField) { setLayout(new BorderLayout()); this.context = context; this.model = casesTableModel; this.tableFormat = tableFormat; ActionMap am = context.getActionMap(CasesTableView.class, this); setActionMap(am);//from w w w. j a v a2 s . c om MacOsUIWrapper.convertAccelerators(context.getActionMap(CasesTableView.class, this)); // Filter filter = module.objectBuilderFactory().newObjectBuilder(PerspectiveView.class).use(model, searchField) .newInstance(); add(filter, BorderLayout.NORTH); // Table // Trigger creation of filters and table model caseTable = new SeparatorTable(null) { public Component prepareRenderer(TableCellRenderer renderer, int row, int column) { Component c = super.prepareRenderer(renderer, row, column); // add custom rendering here EventTableModel model = (EventTableModel) getModel(); if (model.getElementAt(row) instanceof CaseTableValue) { Map attributes = c.getFont().getAttributes(); if (((CaseTableValue) model.getElementAt(row)).removed().get()) { attributes.put(TextAttribute.STRIKETHROUGH, TextAttribute.STRIKETHROUGH_ON); } else if (((CaseTableValue) model.getElementAt(row)).unread().get()) { attributes.put(TextAttribute.WEIGHT, TextAttribute.WEIGHT_BOLD); } c.setFont(new Font(attributes)); } return c; } }; caseTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); caseTable.getActionMap().getParent().setParent(am); caseTable.setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, KeyboardFocusManager.getCurrentKeyboardFocusManager() .getDefaultFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS)); caseTable.setFocusTraversalKeys(KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS, KeyboardFocusManager.getCurrentKeyboardFocusManager() .getDefaultFocusTraversalKeys(KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS)); caseTable.getActionMap().remove("column.horizontalScroll"); caseTable.getActionMap().remove("column.packAll"); caseTable.getActionMap().remove("column.packSelected"); caseTable.setColumnControlVisible(true); caseTable.setModel(new EventJXTableModel<CaseTableValue>(model.getEventList(), tableFormat)); model.addObserver(new Observer() { public void update(Observable o, Object arg) { if (model.getGroupBy() == GroupBy.none) { caseTable.setModel(new EventJXTableModel<CaseTableValue>(model.getEventList(), tableFormat)); } else { SeparatorList<CaseTableValue> groupingList = new SeparatorList<CaseTableValue>( model.getEventList(), groupingComparator, 1, 10000); caseTable.setModel(new EventJXTableModel<CaseTableValue>(groupingList, tableFormat)); } if (!model.containsCaseWithPriority()) { model.addInvisibleColumn(8); } for (Integer invisibleCol : model.getInvisibleColumns()) { TableColumnModelExt tm = (TableColumnModelExt) caseTable.getColumnModel(); if (tm.getColumnExt(invisibleCol).isVisible()) caseTable.getColumnExt(invisibleCol).setVisible(false); } } }); caseTable.getColumn(0).setPreferredWidth(500); caseTable.getColumn(1).setPreferredWidth(70); caseTable.getColumn(1).setMaxWidth(70); caseTable.getColumn(1).setResizable(false); caseTable.getColumn(2).setPreferredWidth(300); caseTable.getColumn(2).setMaxWidth(300); caseTable.getColumn(3).setPreferredWidth(150); caseTable.getColumn(3).setMaxWidth(150); caseTable.getColumn(4).setPreferredWidth(90); caseTable.getColumn(4).setMaxWidth(90); caseTable.getColumn(5).setPreferredWidth(150); caseTable.getColumn(5).setMaxWidth(150); caseTable.getColumn(6).setPreferredWidth(90); caseTable.getColumn(6).setMaxWidth(90); caseTable.getColumn(7).setPreferredWidth(150); caseTable.getColumn(7).setMaxWidth(150); caseTable.getColumn(7).setResizable(false); caseTable.getColumn(8).setPreferredWidth(100); caseTable.getColumn(8).setMaxWidth(100); caseTable.getColumn(9).setMaxWidth(50); caseTable.getColumn(9).setResizable(false); caseTable.setAutoCreateColumnsFromModel(false); int count = 0; for (TableColumn c : caseTable.getColumns()) { c.setIdentifier((Integer) count); count++; c.addPropertyChangeListener(new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent evt) { if ("visible".equals(evt.getPropertyName())) { TableColumnExt columnExt = (TableColumnExt) evt.getSource(); if (columnExt.isVisible()) { model.removeInvisibleColumn(columnExt.getModelIndex()); } else { model.addInvisibleColumn(columnExt.getModelIndex()); } } } }); } JScrollPane caseScrollPane = new JScrollPane(caseTable, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); add(caseScrollPane, BorderLayout.CENTER); caseTable.setDefaultRenderer(Date.class, new DefaultTableRenderer(new StringValue() { private static final long serialVersionUID = 4782416330896582518L; public String getString(Object value) { return value != null ? DateFormats.getProgressiveDateTimeValue((Date) value, Locale.getDefault()) : ""; } })); caseTable.setDefaultRenderer(ArrayList.class, new DefaultTableCellRenderer() { @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { if (value == null) return this; if (value instanceof SeparatorList.Separator) return caseTable.getDefaultRenderer(SeparatorList.Separator.class) .getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); JPanel renderer = new JPanel(new FlowLayout(FlowLayout.LEFT)); ArrayList<String> icons = (ArrayList<String>) value; for (String icon : icons) { ImageIcon image = i18n.icon(Icons.valueOf(icon), 11); JLabel iconLabel = image != null ? new JLabel(image, SwingConstants.LEADING) : new JLabel(" "); renderer.add(iconLabel); } if (isSelected) renderer.setBackground(table.getSelectionBackground()); return renderer; } }); caseTable.setDefaultRenderer(CaseStates.class, new DefaultTableCellRenderer() { @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { if (value == null) return this; EventTableModel model = (EventTableModel) table.getModel(); boolean hasResolution = !Strings .empty(((CaseTableValue) model.getElementAt(row)).resolution().get()); boolean removed = ((CaseTableValue) model.getElementAt(row)).removed().get(); String iconName = hasResolution ? "case_status_withresolution_" + value.toString().toLowerCase() + "_icon" : "case_status_" + value.toString().toLowerCase() + "_icon"; iconName = removed ? "case_status_draft_icon" : iconName; JLabel renderedComponent = (JLabel) super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); renderedComponent.setHorizontalAlignment(SwingConstants.CENTER); setText(null); setIcon(i18n.icon(CaseResources.valueOf(iconName), i18n.ICON_16)); setName(i18n .text(CaseResources.valueOf("case_status_" + value.toString().toLowerCase() + "_text"))); setToolTipText(i18n .text(CaseResources.valueOf("case_status_" + value.toString().toLowerCase() + "_text"))); return this; } }); caseTable.setDefaultRenderer(PriorityValue.class, new DefaultTableCellRenderer() { @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { final PriorityValue priority = (PriorityValue) value; String val = priority == null ? "" : priority.text().get(); JPanel panel = new JPanel(); FormLayout layout = new FormLayout("10dlu, 50dlu:grow", "pref"); DefaultFormBuilder formBuilder = new DefaultFormBuilder(layout, panel); panel.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0)); JLabel label = new JLabel() { @Override protected void paintComponent(Graphics g) { Color color = getBackground(); if (priority != null) { if (!Strings.empty(priority.color().get())) color = new Color(parseInt(priority.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)); //label.setBorder( BorderFactory.createLineBorder( Color.RED ) ); 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); //text.setBorder( BorderFactory.createLineBorder( Color.RED ) ); formBuilder.add(text, new CellConstraints(2, 1, 1, 1, CellConstraints.LEFT, CellConstraints.FILL, new Insets(0, 0, 0, 0))); if (isSelected) { panel.setBackground(table.getSelectionBackground()); text.setForeground(table.getSelectionForeground()); } return panel; } }); caseTable.setDefaultRenderer(SeparatorList.Separator.class, new DefaultTableCellRenderer() { @Override public Component getTableCellRendererComponent(JTable table, Object separator, boolean isSelected, boolean hasFocus, int row, int column) { String value = ""; boolean emptyDescription = false; switch (model.getGroupBy()) { case caseType: emptyDescription = Strings.empty( ((CaseTableValue) ((SeparatorList.Separator) separator).first()).caseType().get()); value = !emptyDescription ? ((CaseTableValue) ((SeparatorList.Separator) separator).first()).caseType().get() : text(WorkspaceResources.no_casetype); break; case assignee: emptyDescription = Strings.empty( ((CaseTableValue) ((SeparatorList.Separator) separator).first()).assignedTo().get()); value = !emptyDescription ? ((CaseTableValue) ((SeparatorList.Separator) separator).first()).assignedTo().get() : text(WorkspaceResources.no_assignee); break; case project: emptyDescription = Strings .empty(((CaseTableValue) ((SeparatorList.Separator) separator).first()).owner().get()); value = !emptyDescription ? ((CaseTableValue) ((SeparatorList.Separator) separator).first()).owner().get() : text(WorkspaceResources.no_project); break; case dueOn: value = text(dueGroups[dueOnGroup( ((CaseTableValue) ((SeparatorList.Separator) separator).first()).dueOn().get())]); break; case priority: emptyDescription = ((CaseTableValue) ((SeparatorList.Separator) separator).first()).priority() .get() == null || Strings.empty(((CaseTableValue) ((SeparatorList.Separator) separator).first()) .priority().get().color().get()); value = !emptyDescription ? ((CaseTableValue) ((SeparatorList.Separator) separator).first()) .priority().get().text().get() : text(WorkspaceResources.no_priority); break; } Component component = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); component.setFont(component.getFont().deriveFont(Font.BOLD + Font.ITALIC)); component.setBackground(Color.lightGray); return component; } }); AbstractHighlighter separatorHighlighter = (AbstractHighlighter) HighlighterFactory .createSimpleStriping(HighlighterFactory.QUICKSILVER); separatorHighlighter.setHighlightPredicate( new HighlightPredicate.TypeHighlightPredicate(SeparatorList.Separator.class)); caseTable.addHighlighter(HighlighterFactory.createAlternateStriping()); caseTable.addHighlighter(separatorHighlighter); addFocusListener(new FocusAdapter() { public void focusGained(FocusEvent e) { caseTable.requestFocusInWindow(); } }); model.getEventList().addListEventListener(new ListEventListener<CaseTableValue>() { public void listChanged(ListEvent<CaseTableValue> listChanges) { // Synchronize lists Set<String> labels = new HashSet<String>(); Set<String> assignees = new HashSet<String>(); Set<String> projects = new HashSet<String>(); for (CaseTableValue caseTableValue : listChanges.getSourceList()) { for (LinkValue linkValue : caseTableValue.labels().get().links().get()) { labels.add(linkValue.text().get()); } assignees.add(caseTableValue.assignedTo().get()); projects.add(caseTableValue.owner().get()); } List<String> sortedLabels = new ArrayList<String>(labels); List<String> sortedAssignees = new ArrayList<String>(assignees); List<String> sortedProjects = new ArrayList<String>(projects); Collections.sort(sortedLabels); Collections.sort(sortedAssignees); Collections.sort(sortedProjects); sortedLabels.add(0, text(WorkspaceResources.all)); sortedAssignees.add(0, text(WorkspaceResources.all)); sortedProjects.add(0, text(WorkspaceResources.all)); } }); addHierarchyListener(new HierarchyListener() { public void hierarchyChanged(HierarchyEvent e) { if ((e.getChangeFlags() & HierarchyEvent.SHOWING_CHANGED) > 0) { if (CasesTableView.this.isShowing()) { context.getActionMap().get("savePerspective").setEnabled(true); } } } }); new RefreshWhenShowing(this, model); }
From source file:torpedo.LoginForm.java
public LoginForm(MainFrame frame) { userNameLbl = new JLabel("Felhasznlnv:"); userName = new JTextField(20); pwdLbl = new JLabel("Jelsz:"); pwd = new JPasswordField(20); loginBtn = new JButton("Bejelentlezs"); regBtn = new JButton("Regisztrci"); errorMsgLbl = new JLabel(); errorMsgLbl.setForeground(Color.red); this.frame = frame; this.setLayout(new FormLayout("100px, 250px, 200px", "100px, 70px, 70px, 70px, 100px")); CellConstraints c = new CellConstraints(); this.add(errorMsgLbl, c.xy(2, 1, CellConstraints.LEFT, CellConstraints.BOTTOM)); this.add(userNameLbl, c.xy(2, 2, CellConstraints.LEFT, CellConstraints.CENTER)); this.add(userName, c.xy(2, 2, CellConstraints.LEFT, CellConstraints.BOTTOM)); this.add(pwdLbl, c.xy(2, 3, CellConstraints.LEFT, CellConstraints.CENTER)); this.add(pwd, c.xy(2, 3, CellConstraints.LEFT, CellConstraints.BOTTOM)); this.add(loginBtn, c.xy(2, 4, CellConstraints.LEFT, CellConstraints.BOTTOM)); this.add(regBtn, c.xy(2, 4, CellConstraints.RIGHT, CellConstraints.BOTTOM)); loginBtn.addMouseListener(new LoginEvent(this.frame)); regBtn.addMouseListener(new MouseAdapter() { @Override/*from w w w . j av a 2 s . c om*/ public void mouseClicked(MouseEvent e) { frame.showCard("regForm"); //SettingsForm s=new SettingsForm(); } }); }
From source file:torpedo.RegForm.java
public RegForm(MainFrame frame) { userNameLbl = new JLabel("Felhasznlnv:"); userName = new JTextField(20); nickNameLbl = new JLabel("Becenv:"); nickName = new JTextField(20); countryLbl = new JLabel("Orszg:"); country = new JComboBox(); pwdLbl = new JLabel("Jelsz:"); pwd = new JPasswordField(20); confPwdLbl = new JLabel("Jelsz megerstse:"); confPwd = new JPasswordField(20); errorMsgLbl = new JLabel(); errorMsgLbl.setForeground(Color.red); regBtn = new JButton("Regisztrls"); backBtn = new JButton("<< Vissza"); for (int i = 0; i < 10; i++) { country.addItem(new ComboItem("Visible String " + i, "Value " + i)); }/*from w w w . ja v a 2s . c o m*/ this.frame = frame; this.setLayout(new FormLayout("100px, 350px, 200px", "70px, 70px, 70px, 70px, 70px, 70px, 70px")); CellConstraints c = new CellConstraints(); this.add(errorMsgLbl, c.xy(2, 1, CellConstraints.LEFT, CellConstraints.CENTER)); this.add(userNameLbl, c.xy(2, 2, CellConstraints.LEFT, CellConstraints.CENTER)); this.add(userName, c.xy(2, 2, CellConstraints.LEFT, CellConstraints.BOTTOM)); this.add(nickName, c.xy(2, 3, CellConstraints.LEFT, CellConstraints.BOTTOM)); this.add(nickNameLbl, c.xy(2, 3, CellConstraints.LEFT, CellConstraints.CENTER)); this.add(country, c.xy(2, 4, CellConstraints.LEFT, CellConstraints.BOTTOM)); this.add(countryLbl, c.xy(2, 4, CellConstraints.LEFT, CellConstraints.CENTER)); this.add(pwdLbl, c.xy(2, 5, CellConstraints.LEFT, CellConstraints.CENTER)); this.add(pwd, c.xy(2, 5, CellConstraints.LEFT, CellConstraints.BOTTOM)); this.add(confPwdLbl, c.xy(2, 6, CellConstraints.LEFT, CellConstraints.CENTER)); this.add(confPwd, c.xy(2, 6, CellConstraints.LEFT, CellConstraints.BOTTOM)); this.add(regBtn, c.xy(2, 7, CellConstraints.RIGHT, CellConstraints.BOTTOM)); this.add(backBtn, c.xy(2, 7, CellConstraints.LEFT, CellConstraints.BOTTOM)); regBtn.addMouseListener(new RegEvent(this.frame)); backBtn.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { frame.showCard("loginForm"); } }); }