List of usage examples for com.vaadin.ui Label setStyleName
@Override public void setStyleName(String style)
From source file:org.hip.vif.forum.usersettings.ui.ShowCompletedRatingView.java
License:Open Source License
/** Constructor for view to display the completed ratings given. * * @param inRatings {@link QueryResult} the participants involved in the review and rating process * @param inQuestions {@link QueryResult} the reviewed questions * @param inCompletions {@link QueryResult} the reviewed completions * @param inTexts {@link QueryResult} the reviewed texts * @param inTask {@link IPluggableWithLookup} the controlling task * @throws VException/* w w w. ja va 2 s . co m*/ * @throws SQLException */ public ShowCompletedRatingView(final QueryResult inRatings, final QueryResult inQuestions, final QueryResult inCompletions, final QueryResult inTexts, final IPluggableWithLookup inTask) throws VException, SQLException { final VerticalLayout lLayout = new VerticalLayout(); setCompositionRoot(lLayout); final IMessages lMessages = Activator.getMessages(); lLayout.setStyleName("vif-view"); //$NON-NLS-1$ lLayout.addComponent(new Label(String.format(VIFViewHelper.TMPL_TITLE, "vif-title", //$NON-NLS-1$ lMessages.getMessage("ratings.completed.title")), ContentMode.HTML)); //$NON-NLS-1$ lLayout.addComponent(new Label(lMessages.getMessage("ui.rated.subtitle"), ContentMode.HTML)); //$NON-NLS-1$ listContributions(inQuestions, inCompletions, inTexts, inTask, lLayout, lMessages); lLayout.addComponent(RiplaViewHelper.createSpacer()); final GridLayout lRatings = new GridLayout(5, 3); lRatings.setStyleName("vif-rating"); //$NON-NLS-1$ lRatings.setWidth("100%"); //$NON-NLS-1$ lRatings.setColumnExpandRatio(4, 1); lLayout.addComponent(lRatings); // headers lRatings.addComponent(new Label("")); //$NON-NLS-1$ addComponentSized(new Label(lMessages.getMessage("ui.rated.column.correctness"), ContentMode.HTML), //$NON-NLS-1$ lRatings); addComponentSized(new Label(lMessages.getMessage("ui.rated.column.efficiency"), ContentMode.HTML), //$NON-NLS-1$ lRatings); addComponentSized(new Label(lMessages.getMessage("ui.rated.column.etiquette"), ContentMode.HTML), lRatings); //$NON-NLS-1$ Label lRemark = new Label(lMessages.getMessage("ui.rated.column.remark"), ContentMode.HTML); //$NON-NLS-1$ lRemark.setStyleName("vif-colhead vif-padding-left"); //$NON-NLS-1$ lRatings.addComponent(lRemark); lRatings.getComponent(0, 0).setWidth(350, Unit.PIXELS); // ratings final Map<Long, String> lParticipants = new HashMap<Long, String>(); final List<Line> lLines = new Vector<ShowCompletedRatingView.Line>(); while (inRatings.hasMoreElements()) { final GeneralDomainObject lRating = inRatings.nextAsDomainObject(); setParticipant(lRating, lParticipants); lLines.add(new Line(lRating)); } for (final Line lLine : lLines) { lRatings.addComponent(new Label(lLine.getInvolved(lParticipants, lMessages), ContentMode.HTML)); addComponentAligened(lLine.getCorrectness(), lRatings); addComponentAligened(lLine.getEfficiency(), lRatings); addComponentAligened(lLine.getEtiquette(), lRatings); lRemark = new Label(lLine.getRemark(), ContentMode.HTML); lRemark.setStyleName("vif-padding-left"); //$NON-NLS-1$ lRatings.addComponent(lRemark); } }
From source file:org.hip.vif.skin.green.Skin.java
License:Open Source License
@Override public Component getHeader(final String inAppName) { final HorizontalLayout outLayout = new HorizontalLayout(); outLayout.setWidth("100%"); outLayout.setHeight(115, Unit.PIXELS); outLayout.setStyleName("vif-green-head"); final Embedded lImage = new Embedded(); lImage.setSource(new ThemeResource("images/head.jpg")); outLayout.addComponent(lImage);/*from w w w .ja v a2 s . c o m*/ outLayout.setComponentAlignment(lImage, Alignment.TOP_LEFT); final Label lTitle = new Label("VIF - Virtual Discussion Forum"); lTitle.setStyleName("vif-head-title"); lTitle.setWidth(700, Unit.PIXELS); outLayout.addComponent(lTitle); return outLayout; }
From source file:org.hip.vif.web.util.UploadComponent.java
License:Open Source License
private Component createDropBox(final IBibliographyTask inTask) { final CssLayout lDropPane = new CssLayout(); lDropPane.setWidth("200px"); //$NON-NLS-1$ lDropPane.setHeight("40px"); //$NON-NLS-1$ lDropPane.addStyleName("v-textfield"); //$NON-NLS-1$ final Label lHint = new Label(Activator.getMessages().getMessage("ui.upload.drop.box")); //$NON-NLS-1$ lHint.setStyleName("vif-drop-hint"); //$NON-NLS-1$ lDropPane.addComponent(lHint);//from ww w.j av a2s .c o m final DragAndDropWrapper outDrop = new DragAndDropWrapper(lDropPane); outDrop.setDropHandler(new DropHandler() { @Override public AcceptCriterion getAcceptCriterion() { // NOPMD return AcceptAll.get(); } @Override public void drop(final DragAndDropEvent inEvent) { // NOPMD final Transferable lTransferable = inEvent.getTransferable(); if (lTransferable instanceof WrapperTransferable) { final Html5File[] lFiles = ((WrapperTransferable) lTransferable).getFiles(); for (final Html5File lFile : lFiles) { lFile.setStreamVariable(createStreamVariable(lFile.getFileName(), inTask)); } } } }); outDrop.setSizeUndefined(); outDrop.setImmediate(true); return outDrop; }
From source file:org.ikasan.dashboard.ui.administration.panel.PolicyManagementPanel.java
License:BSD License
@SuppressWarnings({ "serial" }) protected void init() { this.setWidth("100%"); this.setHeight("100%"); this.createAssociatedRolesPanel(); this.createPolicyDropPanel(); VerticalLayout layout = new VerticalLayout(); layout.setMargin(true);//from w w w. j av a 2 s.c o m layout.setSpacing(true); layout.setWidth("100%"); Panel policyAdministrationPanel = new Panel(); policyAdministrationPanel.addStyleName(ValoTheme.PANEL_BORDERLESS); policyAdministrationPanel.setHeight("100%"); policyAdministrationPanel.setWidth("100%"); GridLayout gridLayout = new GridLayout(2, 6); gridLayout.setSizeFull(); Label roleManagementLabel = new Label("Policy Management"); roleManagementLabel.setStyleName(ValoTheme.LABEL_HUGE); gridLayout.addComponent(roleManagementLabel, 0, 0, 1, 0); Label roleSearchHintLabel = new Label(); roleSearchHintLabel.setCaptionAsHtml(true); roleSearchHintLabel.setCaption( VaadinIcons.QUESTION_CIRCLE_O.getHtml() + " Type into the Policy Name field to find a policy."); roleSearchHintLabel.addStyleName(ValoTheme.LABEL_TINY); roleSearchHintLabel.addStyleName(ValoTheme.LABEL_LIGHT); gridLayout.addComponent(roleSearchHintLabel, 0, 1, 1, 1); Layout controlLayout = this.initControlLayout(); gridLayout.addComponent(controlLayout, 0, 2, 1, 2); GridLayout formLayout = new GridLayout(2, 4); formLayout.setWidth("100%"); formLayout.setSpacing(true); formLayout.setColumnExpandRatio(0, 1); formLayout.setColumnExpandRatio(1, 5); Label policyNameLabel = new Label("Policy Name:"); policyNameLabel.setSizeUndefined(); final DragAndDropWrapper policyNameFieldWrap = initPolicyNameField(); formLayout.addComponent(policyNameLabel, 0, 0); formLayout.setComponentAlignment(policyNameLabel, Alignment.MIDDLE_RIGHT); formLayout.addComponent(policyNameFieldWrap, 1, 0); Label descriptionLabel = new Label("Description:"); descriptionLabel.setSizeUndefined(); this.descriptionField = new TextArea(); this.descriptionField.setWidth("70%"); this.descriptionField.setHeight("60px"); formLayout.addComponent(descriptionLabel, 0, 1); formLayout.setComponentAlignment(descriptionLabel, Alignment.TOP_RIGHT); formLayout.addComponent(this.descriptionField, 1, 1); this.linkTypeLabel.setSizeUndefined(); formLayout.addComponent(this.linkTypeLabel, 0, 2); formLayout.setComponentAlignment(this.linkTypeLabel, Alignment.MIDDLE_RIGHT); this.linkType.setWidth("70%"); formLayout.addComponent(this.linkType, 1, 2); this.linkTypeLabel.setVisible(false); this.linkType.setVisible(false); this.linkedEntityLabel.setSizeUndefined(); this.linkedEntity = new TextArea(); this.linkedEntity.setWidth("70%"); this.linkedEntity.setHeight("60px"); formLayout.addComponent(this.linkedEntityLabel, 0, 3); formLayout.setComponentAlignment(this.linkedEntityLabel, Alignment.MIDDLE_RIGHT); formLayout.addComponent(linkedEntity, 1, 3); this.linkedEntityLabel.setVisible(false); this.linkedEntity.setVisible(false); gridLayout.addComponent(formLayout, 0, 3, 1, 3); Label roleTableHintLabel = new Label(); roleTableHintLabel.setCaptionAsHtml(true); roleTableHintLabel.setCaption(VaadinIcons.QUESTION_CIRCLE_O.getHtml() + " The Roles table below displays the roles that are assigned the current policy."); roleTableHintLabel.addStyleName(ValoTheme.LABEL_TINY); roleTableHintLabel.addStyleName(ValoTheme.LABEL_LIGHT); gridLayout.addComponent(roleTableHintLabel, 0, 4, 1, 4); gridLayout.addComponent(this.roleTable, 0, 5, 1, 5); policyAdministrationPanel.setContent(gridLayout); layout.addComponent(policyAdministrationPanel); HorizontalLayout roleMemberPanelLayout = new HorizontalLayout(); roleMemberPanelLayout.setMargin(true); roleMemberPanelLayout.addComponent(this.policyDropPanel); roleMemberPanelLayout.setSizeFull(); HorizontalSplitPanel hsplit = new HorizontalSplitPanel(); hsplit.setFirstComponent(layout); hsplit.setSecondComponent(roleMemberPanelLayout); // Set the position of the splitter as percentage hsplit.setSplitPosition(65, Unit.PERCENTAGE); hsplit.setLocked(true); this.setContent(hsplit); }
From source file:org.ikasan.dashboard.ui.administration.panel.PolicyManagementPanel.java
License:BSD License
/** * //from www.j a va 2 s . c o m */ protected void createPolicyDropPanel() { this.policyDropPanel = new Panel(); Label rolePoliciesLabel = new Label("Role/Policy Associations"); rolePoliciesLabel.setStyleName(ValoTheme.LABEL_HUGE); this.policyDropPanel.addStyleName(ValoTheme.PANEL_BORDERLESS); this.policyDropPanel.setHeight("100%"); this.policyDropPanel.setWidth("100%"); this.rolesCombo = new ComboBox("Roles"); this.rolesCombo.setWidth("90%"); this.rolesCombo.addValueChangeListener(new Property.ValueChangeListener() { public void valueChange(ValueChangeEvent event) { final Role role = (Role) event.getProperty().getValue(); if (role != null) { List<Policy> policies = securityService.getAllPoliciesWithRole(role.getName()); PolicyManagementPanel.this.policyDropTable.removeAllItems(); for (final Policy policy : policies) { Button deleteButton = new Button(); deleteButton.setIcon(VaadinIcons.TRASH); deleteButton.addStyleName(ValoTheme.BUTTON_ICON_ONLY); deleteButton.addStyleName(ValoTheme.BUTTON_BORDERLESS); deleteButton.setDescription("Remove Policy from this Role"); deleteButton.addClickListener(new Button.ClickListener() { public void buttonClick(ClickEvent event) { role.getPolicies().remove(policy); PolicyManagementPanel.this.saveRole(role); PolicyManagementPanel.this.policyDropTable.removeItem(policy.getName()); PolicyManagementPanel.this.roleTable.removeItem(role); } }); PolicyManagementPanel.this.policyDropTable .addItem(new Object[] { policy.getName(), deleteButton }, policy.getName()); } } } }); this.policyDropTable = new Table(); this.policyDropTable.addContainerProperty("Role Policies", String.class, null); this.policyDropTable.addContainerProperty("", Button.class, null); this.policyDropTable.setHeight("700px"); this.policyDropTable.setWidth("300px"); this.policyDropTable.setDragMode(TableDragMode.ROW); this.policyDropTable.setDropHandler(new DropHandler() { @Override public void drop(final DragAndDropEvent dropEvent) { // criteria verify that this is safe logger.info("Trying to drop: " + dropEvent); if (rolesCombo.getValue() == null) { // Do nothing if there is no role selected logger.info("Ignoring drop: " + dropEvent); return; } final WrapperTransferable t = (WrapperTransferable) dropEvent.getTransferable(); final AutocompleteField sourceContainer = (AutocompleteField) t.getDraggedComponent(); logger.info("sourceContainer.getText(): " + sourceContainer.getText()); Button deleteButton = new Button(); deleteButton.setIcon(VaadinIcons.TRASH); deleteButton.addStyleName(ValoTheme.BUTTON_ICON_ONLY); deleteButton.addStyleName(ValoTheme.BUTTON_BORDERLESS); deleteButton.setDescription("Remove Policy from this Role"); final Policy policy = PolicyManagementPanel.this.securityService .findPolicyByName(sourceContainer.getText()); final Role selectedRole = PolicyManagementPanel.this.securityService .findRoleByName(((Role) rolesCombo.getValue()).getName()); deleteButton.addClickListener(new Button.ClickListener() { public void buttonClick(ClickEvent event) { selectedRole.getPolicies().remove(policy); PolicyManagementPanel.this.saveRole(selectedRole); policyDropTable.removeItem(policy.getName()); roleTable.removeItem(selectedRole); } }); PolicyManagementPanel.this.policyDropTable.addItem( new Object[] { sourceContainer.getText(), deleteButton }, sourceContainer.getText()); selectedRole.getPolicies().add(policy); PolicyManagementPanel.this.saveRole(selectedRole); policy.getRoles().add(selectedRole); PolicyManagementPanel.this.roleTable.removeAllItems(); for (final Role role : policy.getRoles()) { Button roleDeleteButton = new Button(); roleDeleteButton.setIcon(VaadinIcons.TRASH); roleDeleteButton.addStyleName(ValoTheme.BUTTON_ICON_ONLY); deleteButton.addStyleName(ValoTheme.BUTTON_BORDERLESS); deleteButton.setDescription("Remove Policy from this Role"); roleDeleteButton.addClickListener(new Button.ClickListener() { public void buttonClick(ClickEvent event) { selectedRole.getPolicies().remove(policy); PolicyManagementPanel.this.saveRole(selectedRole); PolicyManagementPanel.this.roleTable.removeItem(role); PolicyManagementPanel.this.policyDropTable.removeItem(policy.getName()); } }); PolicyManagementPanel.this.roleTable.addItem(new Object[] { role.getName(), roleDeleteButton }, role); } } @Override public AcceptCriterion getAcceptCriterion() { return AcceptAll.get(); } }); GridLayout layout = new GridLayout(); layout.setSpacing(true); layout.setWidth("100%"); layout.setHeight("100%"); layout.addComponent(rolePoliciesLabel); layout.addComponent(this.rolesCombo); Label policyDropHintLabel = new Label(); policyDropHintLabel.setCaptionAsHtml(true); policyDropHintLabel.setCaption(VaadinIcons.QUESTION_CIRCLE_O.getHtml() + " Drop a policy into the table below to associate with a role."); policyDropHintLabel.addStyleName(ValoTheme.LABEL_TINY); policyDropHintLabel.addStyleName(ValoTheme.LABEL_LIGHT); layout.addComponent(policyDropHintLabel); layout.addComponent(this.policyDropTable); this.policyDropPanel.setContent(layout); }
From source file:org.ikasan.dashboard.ui.administration.panel.PrincipalManagementPanel.java
License:BSD License
@SuppressWarnings("deprecation") protected void init() { this.setWidth("100%"); this.setHeight("100%"); VerticalLayout layout = new VerticalLayout(); layout.setSpacing(true);// w w w.j a v a 2s.c o m layout.setSizeFull(); Panel securityAdministrationPanel = new Panel(); securityAdministrationPanel.addStyleName(ValoTheme.PANEL_BORDERLESS); securityAdministrationPanel.setHeight("100%"); securityAdministrationPanel.setWidth("100%"); GridLayout gridLayout = new GridLayout(2, 5); gridLayout.setWidth("100%"); gridLayout.setHeight("100%"); gridLayout.setMargin(true); gridLayout.setSizeFull(); Label groupManagementLabel = new Label("Group Management"); groupManagementLabel.setStyleName(ValoTheme.LABEL_HUGE); gridLayout.addComponent(groupManagementLabel, 0, 0, 1, 0); Label groupSearchHintLabel = new Label(); groupSearchHintLabel.setCaptionAsHtml(true); groupSearchHintLabel.setCaption( VaadinIcons.QUESTION_CIRCLE_O.getHtml() + " Type into the Group Name field to find a group."); groupSearchHintLabel.addStyleName(ValoTheme.LABEL_TINY); groupSearchHintLabel.addStyleName(ValoTheme.LABEL_LIGHT); gridLayout.addComponent(groupSearchHintLabel, 0, 1, 1, 1); Label principalNameLabel = new Label("Group Name:"); principalNameLabel.setSizeUndefined(); principalNameField = new AutocompleteField<IkasanPrincipal>(); principalNameField.setWidth("70%"); final DragAndDropWrapper principalNameFieldWrap = new DragAndDropWrapper(principalNameField); principalNameFieldWrap.setDragStartMode(DragStartMode.COMPONENT); principalTypeField.setWidth("70%"); descriptionField.setWidth("70%"); descriptionField.setHeight("60px"); roleTable.addContainerProperty("Role", String.class, null); roleTable.addContainerProperty("", Button.class, null); roleTable.setHeight("610px"); roleTable.setWidth("300px"); userTable.addContainerProperty("Associated Users", String.class, null); userTable.setHeight("610px"); userTable.setWidth("300px"); principalDropTable.addContainerProperty("Members", String.class, null); principalDropTable.addContainerProperty("", Button.class, null); principalDropTable.setHeight("700px"); principalDropTable.setWidth("300px"); principalNameField.setQueryListener(new AutocompleteQueryListener<IkasanPrincipal>() { @Override public void handleUserQuery(AutocompleteField<IkasanPrincipal> field, String query) { for (IkasanPrincipal principal : securityService.getPrincipalByNameLike(query)) { field.addSuggestion(principal, principal.getName()); } } }); principalNameField.setSuggestionPickedListener(new AutocompleteSuggestionPickedListener<IkasanPrincipal>() { @Override public void onSuggestionPicked(final IkasanPrincipal principal) { PrincipalManagementPanel.this.principal = principal; PrincipalManagementPanel.this.setValues(); } }); GridLayout formLayout = new GridLayout(2, 3); formLayout.setWidth("100%"); formLayout.setHeight("135px"); formLayout.setSpacing(true); formLayout.setColumnExpandRatio(0, .1f); formLayout.setColumnExpandRatio(1, .8f); formLayout.addComponent(principalNameLabel, 0, 0); formLayout.setComponentAlignment(principalNameLabel, Alignment.MIDDLE_RIGHT); formLayout.addComponent(principalNameFieldWrap, 1, 0); Label principalTypeLabel = new Label("Group Type:"); principalTypeLabel.setSizeUndefined(); formLayout.addComponent(principalTypeLabel, 0, 1); formLayout.setComponentAlignment(principalTypeLabel, Alignment.MIDDLE_RIGHT); formLayout.addComponent(principalTypeField, 1, 1); Label descriptionLabel = new Label("Description:"); descriptionLabel.setSizeUndefined(); formLayout.addComponent(descriptionLabel, 0, 2); formLayout.setComponentAlignment(descriptionLabel, Alignment.TOP_RIGHT); formLayout.addComponent(descriptionField, 1, 2); gridLayout.addComponent(formLayout, 0, 2, 1, 2); principalDropTable.setDragMode(TableDragMode.ROW); principalDropTable.setDropHandler(new DropHandler() { @Override public void drop(final DragAndDropEvent dropEvent) { // criteria verify that this is safe logger.info("Trying to drop: " + dropEvent); if (rolesCombo.getValue() == null) { // Do nothing if there is no role selected logger.info("Ignoring drop: " + dropEvent); return; } final WrapperTransferable t = (WrapperTransferable) dropEvent.getTransferable(); final AutocompleteField sourceContainer = (AutocompleteField) t.getDraggedComponent(); logger.info("sourceContainer.getText(): " + sourceContainer.getText()); Button deleteButton = new Button(); deleteButton.setIcon(VaadinIcons.TRASH); deleteButton.addStyleName(ValoTheme.BUTTON_ICON_ONLY); deleteButton.addStyleName(ValoTheme.BUTTON_BORDERLESS); final IkasanPrincipal principal = securityService.findPrincipalByName(sourceContainer.getText()); final Role roleToRemove = (Role) rolesCombo.getValue(); deleteButton.addClickListener(new Button.ClickListener() { public void buttonClick(ClickEvent event) { principalDropTable.removeItem(principal.getName()); principal.getRoles().remove(roleToRemove); securityService.savePrincipal(principal); if (principalNameField.getText().equals(principal.getName())) { roleTable.removeItem(roleToRemove); } } }); principalDropTable.addItem(new Object[] { sourceContainer.getText(), deleteButton }, sourceContainer.getText()); principal.getRoles().add((Role) rolesCombo.getValue()); securityService.savePrincipal(principal); roleTable.removeAllItems(); for (final Role role : principal.getRoles()) { Button roleDeleteButton = new Button(); roleDeleteButton.setIcon(VaadinIcons.TRASH); roleDeleteButton.addStyleName(ValoTheme.BUTTON_ICON_ONLY); roleDeleteButton.addStyleName(ValoTheme.BUTTON_BORDERLESS); roleDeleteButton.addClickListener(new Button.ClickListener() { public void buttonClick(ClickEvent event) { roleTable.removeItem(role); principal.getRoles().remove(role); securityService.savePrincipal(principal); principalDropTable.removeItem(principal.getName()); } }); roleTable.addItem(new Object[] { role.getName(), roleDeleteButton }, role); } } @Override public AcceptCriterion getAcceptCriterion() { return AcceptAll.get(); } }); Label roleTableHintLabel = new Label(); roleTableHintLabel.setCaptionAsHtml(true); roleTableHintLabel.setCaption(VaadinIcons.QUESTION_CIRCLE_O.getHtml() + " The Roles table below displays the roles that are assigned to the group. Roles can be deleted from this table."); roleTableHintLabel.addStyleName(ValoTheme.LABEL_TINY); roleTableHintLabel.addStyleName(ValoTheme.LABEL_LIGHT); gridLayout.addComponent(roleTableHintLabel, 0, 3, 1, 3); gridLayout.addComponent(roleTable, 0, 4); gridLayout.addComponent(userTable, 1, 4); this.rolesCombo = new ComboBox("Roles"); this.rolesCombo.setWidth("90%"); this.rolesCombo.addListener(new Property.ValueChangeListener() { public void valueChange(ValueChangeEvent event) { final Role role = (Role) event.getProperty().getValue(); if (role != null) { logger.info("Value changed got Role: " + role); List<IkasanPrincipal> principals = securityService.getAllPrincipalsWithRole(role.getName()); principalDropTable.removeAllItems(); for (final IkasanPrincipal principal : principals) { Button deleteButton = new Button(); deleteButton.setIcon(VaadinIcons.TRASH); deleteButton.addStyleName(ValoTheme.BUTTON_ICON_ONLY); deleteButton.addStyleName(ValoTheme.BUTTON_BORDERLESS); deleteButton.addClickListener(new Button.ClickListener() { public void buttonClick(ClickEvent event) { principalDropTable.removeItem(principal.getName()); principal.getRoles().remove(role); securityService.savePrincipal(principal); if (principalNameField.getText().equals(principal.getName())) { roleTable.removeItem(role); } } }); principalDropTable.addItem(new Object[] { principal.getName(), deleteButton }, principal.getName()); } } } }); Panel roleMemberPanel = new Panel(); roleMemberPanel.addStyleName(ValoTheme.PANEL_BORDERLESS); roleMemberPanel.setHeight("100%"); roleMemberPanel.setWidth("100%"); GridLayout roleMemberLayout = new GridLayout(); roleMemberLayout.setSpacing(true); roleMemberLayout.setWidth("100%"); roleMemberLayout.setHeight("100%"); Label roleGroupLabels = new Label("Role/Group Associations"); roleGroupLabels.setStyleName(ValoTheme.LABEL_HUGE); gridLayout.addComponent(roleGroupLabels); Label groupDragHintLabel = new Label(); groupDragHintLabel.setCaptionAsHtml(true); groupDragHintLabel.setCaption(VaadinIcons.QUESTION_CIRCLE_O.getHtml() + " Drop groups into the table below to assign them the role."); roleMemberLayout.addComponent(roleGroupLabels); roleMemberLayout.addComponent(groupDragHintLabel); roleMemberLayout.addComponent(this.rolesCombo); roleMemberLayout.addComponent(this.principalDropTable); roleMemberPanel.setContent(roleMemberLayout); securityAdministrationPanel.setContent(gridLayout); layout.addComponent(securityAdministrationPanel); VerticalLayout roleMemberPanelLayout = new VerticalLayout(); roleMemberPanelLayout.setWidth("100%"); roleMemberPanelLayout.setHeight("100%"); roleMemberPanelLayout.setMargin(true); roleMemberPanelLayout.addComponent(roleMemberPanel); roleMemberPanelLayout.setSizeFull(); HorizontalSplitPanel hsplit = new HorizontalSplitPanel(); hsplit.setFirstComponent(layout); hsplit.setSecondComponent(roleMemberPanelLayout); // Set the position of the splitter as percentage hsplit.setSplitPosition(65, Unit.PERCENTAGE); hsplit.setLocked(true); this.setContent(hsplit); }
From source file:org.ikasan.dashboard.ui.administration.panel.RoleManagementPanel.java
License:BSD License
@SuppressWarnings({ "serial" }) protected void init() { this.setWidth("100%"); this.setHeight("100%"); this.initPolicyNameField(); this.createPolicyDropPanel(); VerticalLayout layout = new VerticalLayout(); layout.setSizeFull();//from w w w . j av a2s.co m Panel roleAdministrationPanel = new Panel(); roleAdministrationPanel.addStyleName(ValoTheme.PANEL_BORDERLESS); roleAdministrationPanel.setHeight("100%"); roleAdministrationPanel.setWidth("100%"); GridLayout gridLayout = new GridLayout(2, 6); gridLayout.setWidth("100%"); gridLayout.setHeight("100%"); gridLayout.setMargin(true); gridLayout.setSizeFull(); Label roleManagementLabel = new Label("Role Management"); roleManagementLabel.setStyleName(ValoTheme.LABEL_HUGE); gridLayout.addComponent(roleManagementLabel, 0, 0, 1, 0); Label roleSearchHintLabel = new Label(); roleSearchHintLabel.setCaptionAsHtml(true); roleSearchHintLabel.setCaption( VaadinIcons.QUESTION_CIRCLE_O.getHtml() + " Type into the Role Name field to find a role."); roleSearchHintLabel.addStyleName(ValoTheme.LABEL_TINY); roleSearchHintLabel.addStyleName(ValoTheme.LABEL_LIGHT); gridLayout.addComponent(roleSearchHintLabel, 0, 1, 1, 1); Layout controlLayout = this.initControlLayout(); gridLayout.addComponent(controlLayout, 0, 2, 1, 2); Label roleNameLabel = new Label("Role Name:"); roleNameLabel.setSizeUndefined(); initRoleNameField(); GridLayout formLayout = new GridLayout(2, 2); formLayout.setWidth("100%"); formLayout.setHeight("115px"); formLayout.setSpacing(true); formLayout.setColumnExpandRatio(0, 1); formLayout.setColumnExpandRatio(1, 5); this.roleNameField.setWidth("70%"); formLayout.addComponent(roleNameLabel, 0, 0); formLayout.setComponentAlignment(roleNameLabel, Alignment.MIDDLE_RIGHT); formLayout.addComponent(this.roleNameField, 1, 0); Label descriptionLabel = new Label("Description:"); descriptionLabel.setSizeUndefined(); this.descriptionField = new TextArea(); this.descriptionField.setWidth("70%"); this.descriptionField.setHeight("60px"); formLayout.addComponent(descriptionLabel, 0, 1); formLayout.setComponentAlignment(descriptionLabel, Alignment.TOP_RIGHT); formLayout.addComponent(descriptionField, 1, 1); gridLayout.addComponent(formLayout, 0, 3, 1, 3); Label roleTableHintLabel = new Label(); roleTableHintLabel.setCaptionAsHtml(true); roleTableHintLabel.setCaption(VaadinIcons.QUESTION_CIRCLE_O.getHtml() + " The Associated Users/Groups table below displays the users/groups that are assigned the current role."); roleTableHintLabel.addStyleName(ValoTheme.LABEL_TINY); roleTableHintLabel.addStyleName(ValoTheme.LABEL_LIGHT); gridLayout.addComponent(roleTableHintLabel, 0, 4, 1, 4); this.associatedPrincipalsTable = new Table(); this.associatedPrincipalsTable.addItemClickListener(this.associatedPrincipalItemClickListener); this.associatedPrincipalsTable.addContainerProperty("Associated Users/Groups", String.class, null); this.associatedPrincipalsTable.addContainerProperty("", Button.class, null); this.associatedPrincipalsTable.setHeight("600px"); this.associatedPrincipalsTable.setWidth("650px"); gridLayout.addComponent(this.associatedPrincipalsTable, 0, 5, 1, 5); roleAdministrationPanel.setContent(gridLayout); layout.addComponent(roleAdministrationPanel); HorizontalLayout policyDropPanelLayout = new HorizontalLayout(); policyDropPanelLayout.setMargin(true); policyDropPanelLayout.addComponent(this.policyDropPanel); policyDropPanelLayout.setSizeFull(); HorizontalSplitPanel hsplit = new HorizontalSplitPanel(); hsplit.setFirstComponent(layout); hsplit.setSecondComponent(policyDropPanelLayout); // Set the position of the splitter as percentage hsplit.setSplitPosition(65, Unit.PERCENTAGE); hsplit.setLocked(true); this.setContent(hsplit); }
From source file:org.ikasan.dashboard.ui.administration.panel.RoleManagementPanel.java
License:BSD License
/** * //from w w w . ja v a 2 s . c o m */ protected void createPolicyDropPanel() { this.policyDropPanel = new Panel(); this.policyDropPanel.setStyleName(ValoTheme.PANEL_BORDERLESS); this.policyDropPanel.setHeight("100%"); this.policyDropPanel.setWidth("100%"); this.policyTable = new Table(); this.policyTable.addContainerProperty("Role Policies", String.class, null); this.policyTable.addContainerProperty("", Button.class, null); this.policyTable.setHeight("720px"); this.policyTable.setWidth("300px"); this.policyTable.setDragMode(TableDragMode.ROW); this.policyTable.setDropHandler(new DropHandler() { @Override public void drop(final DragAndDropEvent dropEvent) { if (role == null) { // Do nothing if there is no role selected logger.info("Ignoring drop: " + dropEvent); return; } // criteria verify that this is safe logger.info("Trying to drop: " + dropEvent); final WrapperTransferable t = (WrapperTransferable) dropEvent.getTransferable(); final AutocompleteField sourceContainer = (AutocompleteField) t.getDraggedComponent(); logger.info("sourceContainer.getText(): " + sourceContainer.getText()); Button deleteButton = new Button(); deleteButton.setIcon(VaadinIcons.TRASH); deleteButton.addStyleName(ValoTheme.BUTTON_ICON_ONLY); deleteButton.addStyleName(ValoTheme.BUTTON_BORDERLESS); deleteButton.setDescription("Remove Policy from this Role"); deleteButton.addClickListener(new Button.ClickListener() { public void buttonClick(ClickEvent event) { Policy policy = RoleManagementPanel.this.securityService .findPolicyByName(sourceContainer.getText()); logger.info("Trying to remove policy: " + policy); Role selectedRole = RoleManagementPanel.this.securityService .findRoleByName(RoleManagementPanel.this.roleNameField.getText()); logger.info("From role: " + selectedRole); selectedRole.getPolicies().remove(policy); RoleManagementPanel.this.saveRole(selectedRole); RoleManagementPanel.this.policyTable.removeItem(policy.getName()); } }); Policy policy = RoleManagementPanel.this.securityService .findPolicyByName(sourceContainer.getText()); Role selectedRole = RoleManagementPanel.this.securityService .findRoleByName(RoleManagementPanel.this.roleNameField.getText()); selectedRole.getPolicies().add(policy); RoleManagementPanel.this.saveRole(selectedRole); RoleManagementPanel.this.policyTable.addItem( new Object[] { sourceContainer.getText(), deleteButton }, sourceContainer.getText()); } @Override public AcceptCriterion getAcceptCriterion() { return AcceptAll.get(); } }); GridLayout layout = new GridLayout(); layout.setSpacing(true); layout.setWidth("100%"); Label associatedPoliciesLabel = new Label("Associated Policies"); associatedPoliciesLabel.setStyleName(ValoTheme.LABEL_HUGE); Label policy1HintLabel = new Label(); policy1HintLabel.setCaptionAsHtml(true); policy1HintLabel.setCaption( VaadinIcons.QUESTION_CIRCLE_O.getHtml() + " Type into the text box below to find a policy."); policy1HintLabel.addStyleName(ValoTheme.LABEL_TINY); policy1HintLabel.addStyleName(ValoTheme.LABEL_LIGHT); layout.addComponent(associatedPoliciesLabel); layout.addComponent(policy1HintLabel); layout.addComponent(policyNameFieldWrap); Label policy2HintLabel = new Label(); policy2HintLabel.setCaptionAsHtml(true); policy2HintLabel.setCaption( VaadinIcons.QUESTION_CIRCLE_O.getHtml() + " Drag below to associate policy with current role."); policy2HintLabel.addStyleName(ValoTheme.LABEL_TINY); policy2HintLabel.addStyleName(ValoTheme.LABEL_LIGHT); layout.addComponent(policy2HintLabel); layout.addComponent(this.policyTable); this.policyDropPanel.setContent(layout); }
From source file:org.ikasan.dashboard.ui.administration.panel.UserDirectoriesPanel.java
License:BSD License
protected void init() { Label userDirectories = new Label("User Directories"); userDirectories.setStyleName(ValoTheme.LABEL_HUGE); Label parapraphOne = new Label(); parapraphOne.setCaptionAsHtml(true); parapraphOne.setCaption(VaadinIcons.QUESTION_CIRCLE_O.getHtml() + " The table below shows the user directories currently configured for Ikasan."); parapraphOne.addStyleName(ValoTheme.LABEL_TINY); parapraphOne.addStyleName(ValoTheme.LABEL_LIGHT); Label parapraphTwo = new Label(); parapraphTwo.setCaptionAsHtml(true); parapraphTwo.setCaption(VaadinIcons.QUESTION_CIRCLE_O.getHtml() + " The order of the directory is the order in which it will be searched for users and groups." + " It is recommended that each user exists in a single directory."); parapraphTwo.addStyleName(ValoTheme.LABEL_TINY); parapraphTwo.addStyleName(ValoTheme.LABEL_LIGHT); this.mainLayout.setWidth("100%"); this.mainLayout.setSpacing(true); this.mainLayout.addComponent(userDirectories); this.mainLayout.addComponent(parapraphOne); this.mainLayout.addComponent(parapraphTwo); Button newDirectoryButton = new Button("Add Directory"); newDirectoryButton.addClickListener(new Button.ClickListener() { public void buttonClick(ClickEvent event) { final UserDirectoryManagementPanel authMethodPanel = new UserDirectoryManagementPanel( new AuthenticationMethod(), securityService, authenticationProviderFactory, ldapService); Window window = new Window("Configure User Directory"); window.setModal(true);/*w w w.j av a 2 s .c o m*/ window.setHeight("90%"); window.setWidth("90%"); window.setContent(authMethodPanel); UI.getCurrent().addWindow(window); window.addCloseListener(new Window.CloseListener() { @Override public void windowClose(Window.CloseEvent e) { populateAll(); } }); } }); this.mainLayout.addComponent(newDirectoryButton); this.setWidth("100%"); this.setHeight("100%"); this.directoryTable = new Table(); this.directoryTable.setWidth("100%"); this.directoryTable.setHeight("600px"); this.directoryTable.setCellStyleGenerator(new IkasanCellStyleGenerator()); this.directoryTable.addContainerProperty("Directory Name", String.class, null); this.directoryTable.addContainerProperty("Type", String.class, null); this.directoryTable.addContainerProperty("Order", Layout.class, null); this.directoryTable.addContainerProperty("Operations", Layout.class, null); this.directoryTable.setColumnExpandRatio("Directory Name", 25); this.directoryTable.setColumnExpandRatio("Type", 25); this.directoryTable.setColumnAlignment("Order", Align.CENTER); this.directoryTable.setColumnExpandRatio("Order", 10); this.directoryTable.setColumnAlignment("Operations", Align.CENTER); this.directoryTable.setColumnWidth("Operations", 300); this.mainLayout.addComponent(this.directoryTable); this.mainLayout.setMargin(true); Panel wrapperPanel = new Panel(); wrapperPanel.addStyleName(ValoTheme.PANEL_BORDERLESS); wrapperPanel.setSizeFull(); wrapperPanel.setContent(this.mainLayout); HorizontalLayout wrapperLayout = new HorizontalLayout(); wrapperLayout.setSizeFull(); wrapperLayout.setMargin(true); wrapperLayout.addComponent(wrapperPanel); this.setContent(wrapperLayout); }
From source file:org.ikasan.dashboard.ui.administration.panel.UserDirectoryManagementPanel.java
License:BSD License
protected void init() { this.setWidth("100%"); this.setHeight("100%"); VerticalLayout layout = new VerticalLayout(); layout.setMargin(true);// w w w.jav a 2 s .co m Panel securityAdministrationPanel = new Panel(); securityAdministrationPanel.setStyleName("dashboard"); securityAdministrationPanel.setWidth("100%"); securityAdministrationPanel.setHeight("100%"); GridLayout gridLayout = new GridLayout(2, 25); gridLayout.setSpacing(true); gridLayout.setWidth("100%"); gridLayout.setHeight("100%"); gridLayout.setMargin(true); gridLayout.setColumnExpandRatio(0, 0.3f); gridLayout.setColumnExpandRatio(1, 0.7f); authenticationMethodCombo.addItem(LOCAL_AUTHENTICATION); authenticationMethodCombo.setItemCaption(LOCAL_AUTHENTICATION, LOCAL_AUTHENTICATION.getCaption()); authenticationMethodCombo.addItem(LDAP_LOCAL_AUTHENTICATION); authenticationMethodCombo.setItemCaption(LDAP_LOCAL_AUTHENTICATION, LDAP_LOCAL_AUTHENTICATION.getCaption()); authenticationMethodCombo.addItem(LDAP_AUTHENTICATION); authenticationMethodCombo.setItemCaption(LDAP_AUTHENTICATION, LDAP_AUTHENTICATION.getCaption()); authenticationMethodDropdownValuesMap.put(LOCAL_AUTHENTICATION.getValue(), LOCAL_AUTHENTICATION); authenticationMethodDropdownValuesMap.put(LDAP_LOCAL_AUTHENTICATION.getValue(), LDAP_LOCAL_AUTHENTICATION); authenticationMethodDropdownValuesMap.put(LDAP_AUTHENTICATION.getValue(), LDAP_AUTHENTICATION); final Label serverSettings = new Label("Server Settings"); serverSettings.setStyleName("large-bold"); gridLayout.addComponent(serverSettings, 0, 0); final Label directoryNameLabel = new Label("Directory Name:"); directoryNameLabel.setSizeUndefined(); this.directoryName = new TextField(); this.directoryName.setWidth("400px"); this.directoryName.setRequired(true); gridLayout.addComponent(directoryNameLabel, 0, 1); gridLayout.addComponent(this.directoryName, 1, 1); gridLayout.setComponentAlignment(directoryNameLabel, Alignment.MIDDLE_RIGHT); final Label ldapServerUrlLabel = new Label("LDAP Server URL:"); ldapServerUrlLabel.setSizeUndefined(); this.ldapServerUrl = new TextField(); this.ldapServerUrl.setWidth("400px"); gridLayout.addComponent(ldapServerUrlLabel, 0, 2); gridLayout.addComponent(this.ldapServerUrl, 1, 2); this.ldapServerUrl.setRequired(true); gridLayout.setComponentAlignment(ldapServerUrlLabel, Alignment.MIDDLE_RIGHT); Label hostnameExample = new Label("Hostname of server running LDAP. Example: ldap://ldap.example.com:389"); gridLayout.addComponent(hostnameExample, 1, 3); final Label ldapBindUserDnLabel = new Label("Username:"); ldapBindUserDnLabel.setSizeUndefined(); this.ldapBindUserDn = new TextField(); this.ldapBindUserDn.setWidth("400px"); this.ldapBindUserDn.setRequired(true); gridLayout.addComponent(ldapBindUserDnLabel, 0, 4); gridLayout.addComponent(this.ldapBindUserDn, 1, 4); gridLayout.setComponentAlignment(ldapBindUserDnLabel, Alignment.MIDDLE_RIGHT); Label usernameExample = new Label("User to log into LDAP. Example: cn=user,DC=domain,DC=name"); gridLayout.addComponent(usernameExample, 1, 5); final Label ldapBindUserPasswordLabel = new Label("Password:"); ldapBindUserPasswordLabel.setSizeUndefined(); this.ldapBindUserPassword = new PasswordField(); this.ldapBindUserPassword.setWidth("100px"); this.ldapBindUserPassword.setRequired(true); gridLayout.addComponent(ldapBindUserPasswordLabel, 0, 6); gridLayout.addComponent(this.ldapBindUserPassword, 1, 6); gridLayout.setComponentAlignment(ldapBindUserPasswordLabel, Alignment.MIDDLE_RIGHT); final Label ldapSchema = new Label("LDAP Schema"); ldapSchema.setStyleName("large-bold"); gridLayout.addComponent(ldapSchema, 0, 7); final Label ldapUserSearchDnLabel = new Label("User DN:"); ldapUserSearchDnLabel.setSizeUndefined(); this.ldapUserSearchDn = new TextField(); this.ldapUserSearchDn.setRequired(true); this.ldapUserSearchDn.setWidth("400px"); gridLayout.addComponent(ldapUserSearchDnLabel, 0, 8); gridLayout.setComponentAlignment(ldapUserSearchDnLabel, Alignment.MIDDLE_RIGHT); gridLayout.addComponent(this.ldapUserSearchDn, 1, 8); Label userDnExample = new Label("The base DN to use when searching for users."); gridLayout.addComponent(userDnExample, 1, 9); final Label applicationSecurityBaseDnLabel = new Label("Group DN:"); applicationSecurityBaseDnLabel.setSizeUndefined(); this.applicationSecurityBaseDn = new TextField(); this.applicationSecurityBaseDn.setRequired(true); this.applicationSecurityBaseDn.setWidth("400px"); gridLayout.addComponent(applicationSecurityBaseDnLabel, 0, 10); gridLayout.setComponentAlignment(applicationSecurityBaseDnLabel, Alignment.MIDDLE_RIGHT); gridLayout.addComponent(this.applicationSecurityBaseDn, 1, 10); Label groupDnExample = new Label("The base DN to use when searching for groups."); gridLayout.addComponent(groupDnExample, 1, 11); final Label ldapAttributes = new Label("LDAP Attributes"); ldapAttributes.setStyleName("large-bold"); CheckBox checkbox = new CheckBox("Populate default attributes"); checkbox.setValue(false); checkbox.addValueChangeListener(new Property.ValueChangeListener() { public void valueChange(ValueChangeEvent event) { boolean value = (Boolean) event.getProperty().getValue(); if (value == true) { ldapUserSearchFilter.setValue(LDAP_USER_SEARCH_FILTER); emailAttributeName.setValue(EMAIL_ATTRIBUTE_NAME); userAccountNameAttributeName.setValue(USER_ACCOUNT_NAME_ATTRIBUTE_NAME); accountTypeAttributeName.setValue(ACCOUNT_TYPE_ATTRIBUTE_NAME); firstNameAttributeName.setValue(FIRST_NAME_ATTRIBUTE_NAME); surnameAttributeName.setValue(SURNAME_ATTRIBUTE_NAME); departmentAttributeName.setValue(DEPARTMENT_ATTRIBUTE_NAME); ldapUserDescriptionAttributeName.setValue(LDAP_USER_DESCRIPTION_ATTRIBUTE_NAME); memberofAttributeName.setValue(MEMBER_OF_ATTRIBUTE_NAME); applicationSecurityGroupAttributeName.setValue(APPLICATION_SECURITY_GROUP_ATTRIBUTE_NAME); applicationSecurityDescriptionAttributeName .setValue(APPLICATION_SECURITY_DESCRIPTION_ATTRIBUTE_NAME); } else { ldapUserSearchFilter.setValue(""); emailAttributeName.setValue(""); userAccountNameAttributeName.setValue(""); accountTypeAttributeName.setValue(""); firstNameAttributeName.setValue(""); surnameAttributeName.setValue(""); departmentAttributeName.setValue(""); ldapUserDescriptionAttributeName.setValue(""); memberofAttributeName.setValue(""); applicationSecurityGroupAttributeName.setValue(""); applicationSecurityDescriptionAttributeName.setValue(""); } } }); checkbox.setImmediate(true); gridLayout.addComponent(ldapAttributes, 0, 12); gridLayout.addComponent(checkbox, 1, 12); final Label userSearchFieldLabel = new Label("User Search Filter:"); userSearchFieldLabel.setSizeUndefined(); this.ldapUserSearchFilter = new TextField(); this.ldapUserSearchFilter.setWidth("300px"); this.ldapUserSearchFilter.setRequired(true); gridLayout.addComponent(userSearchFieldLabel, 0, 13); gridLayout.setComponentAlignment(userSearchFieldLabel, Alignment.MIDDLE_RIGHT); gridLayout.addComponent(this.ldapUserSearchFilter, 1, 13); final Label emailAttributeNameLabel = new Label("Email:"); emailAttributeNameLabel.setSizeUndefined(); this.emailAttributeName = new TextField(); this.emailAttributeName.setWidth("300px"); this.emailAttributeName.setRequired(true); gridLayout.addComponent(emailAttributeNameLabel, 0, 14); gridLayout.setComponentAlignment(emailAttributeNameLabel, Alignment.MIDDLE_RIGHT); gridLayout.addComponent(this.emailAttributeName, 1, 14); final Label userAccountNameAttributeNameLabel = new Label("Account Name:"); userAccountNameAttributeNameLabel.setSizeUndefined(); this.userAccountNameAttributeName = new TextField(); this.userAccountNameAttributeName.setWidth("300px"); this.userAccountNameAttributeName.setRequired(true); gridLayout.addComponent(userAccountNameAttributeNameLabel, 0, 15); gridLayout.setComponentAlignment(userAccountNameAttributeNameLabel, Alignment.MIDDLE_RIGHT); gridLayout.addComponent(this.userAccountNameAttributeName, 1, 15); final Label accountTypeAttributeNameLabel = new Label("Account Type:"); accountTypeAttributeNameLabel.setSizeUndefined(); this.accountTypeAttributeName = new TextField(); this.accountTypeAttributeName.setWidth("300px"); this.accountTypeAttributeName.setRequired(true); gridLayout.addComponent(accountTypeAttributeNameLabel, 0, 16); gridLayout.setComponentAlignment(accountTypeAttributeNameLabel, Alignment.MIDDLE_RIGHT); gridLayout.addComponent(this.accountTypeAttributeName, 1, 16); final Label firstNameAttributeNameLabel = new Label("First Name:"); firstNameAttributeNameLabel.setSizeUndefined(); this.firstNameAttributeName = new TextField(); this.firstNameAttributeName.setWidth("300px"); this.firstNameAttributeName.setRequired(true); gridLayout.addComponent(firstNameAttributeNameLabel, 0, 17); gridLayout.setComponentAlignment(firstNameAttributeNameLabel, Alignment.MIDDLE_RIGHT); gridLayout.addComponent(this.firstNameAttributeName, 1, 17); final Label surnameAttributeNameLabel = new Label("Surname:"); surnameAttributeNameLabel.setSizeUndefined(); this.surnameAttributeName = new TextField(); this.surnameAttributeName.setWidth("300px"); this.surnameAttributeName.setRequired(true); gridLayout.addComponent(surnameAttributeNameLabel, 0, 18); gridLayout.setComponentAlignment(surnameAttributeNameLabel, Alignment.MIDDLE_RIGHT); gridLayout.addComponent(this.surnameAttributeName, 1, 18); final Label departmentAttributeNameLabel = new Label("User Department:"); departmentAttributeNameLabel.setSizeUndefined(); this.departmentAttributeName = new TextField(); this.departmentAttributeName.setWidth("300px"); this.departmentAttributeName.setRequired(true); gridLayout.addComponent(departmentAttributeNameLabel, 0, 19); gridLayout.setComponentAlignment(departmentAttributeNameLabel, Alignment.MIDDLE_RIGHT); gridLayout.addComponent(this.departmentAttributeName, 1, 19); final Label ldapUserDescriptionAttributeNameLabel = new Label("User Description:"); ldapUserDescriptionAttributeNameLabel.setSizeUndefined(); this.ldapUserDescriptionAttributeName = new TextField(); this.ldapUserDescriptionAttributeName.setWidth("300px"); this.ldapUserDescriptionAttributeName.setRequired(true); gridLayout.addComponent(ldapUserDescriptionAttributeNameLabel, 0, 20); gridLayout.setComponentAlignment(ldapUserDescriptionAttributeNameLabel, Alignment.MIDDLE_RIGHT); gridLayout.addComponent(this.ldapUserDescriptionAttributeName, 1, 20); final Label memberOfAttributeNameLabel = new Label("Member Of:"); memberOfAttributeNameLabel.setSizeUndefined(); this.memberofAttributeName = new TextField(); this.memberofAttributeName.setWidth("300px"); this.memberofAttributeName.setRequired(true); gridLayout.addComponent(memberOfAttributeNameLabel, 0, 21); gridLayout.setComponentAlignment(memberOfAttributeNameLabel, Alignment.MIDDLE_RIGHT); gridLayout.addComponent(this.memberofAttributeName, 1, 21); final Label applicationSecurityGroupAttributeNameLabel = new Label("Group Name:"); applicationSecurityGroupAttributeNameLabel.setSizeUndefined(); this.applicationSecurityGroupAttributeName = new TextField(); this.applicationSecurityGroupAttributeName.setWidth("300px"); this.applicationSecurityGroupAttributeName.setRequired(true); gridLayout.addComponent(applicationSecurityGroupAttributeNameLabel, 0, 22); gridLayout.setComponentAlignment(applicationSecurityGroupAttributeNameLabel, Alignment.MIDDLE_RIGHT); gridLayout.addComponent(this.applicationSecurityGroupAttributeName, 1, 22); final Label applicationSecurityAttributeNameLabel = new Label("Group Description:"); applicationSecurityAttributeNameLabel.setSizeUndefined(); this.applicationSecurityDescriptionAttributeName = new TextField(); this.applicationSecurityDescriptionAttributeName.setWidth("300px"); this.applicationSecurityDescriptionAttributeName.setRequired(true); gridLayout.addComponent(applicationSecurityAttributeNameLabel, 0, 23); gridLayout.setComponentAlignment(applicationSecurityAttributeNameLabel, Alignment.MIDDLE_RIGHT); gridLayout.addComponent(this.applicationSecurityDescriptionAttributeName, 1, 23); final BeanItem<AuthenticationMethod> authenticationMethodItem = new BeanItem<AuthenticationMethod>( authenticationMethod); this.directoryName.setPropertyDataSource(authenticationMethodItem.getItemProperty("name")); this.ldapServerUrl.setPropertyDataSource(authenticationMethodItem.getItemProperty("ldapServerUrl")); this.ldapBindUserDn.setPropertyDataSource(authenticationMethodItem.getItemProperty("ldapBindUserDn")); this.ldapBindUserPassword .setPropertyDataSource(authenticationMethodItem.getItemProperty("ldapBindUserPassword")); this.ldapUserSearchDn .setPropertyDataSource(authenticationMethodItem.getItemProperty("ldapUserSearchBaseDn")); this.ldapUserSearchFilter .setPropertyDataSource(authenticationMethodItem.getItemProperty("ldapUserSearchFilter")); this.emailAttributeName .setPropertyDataSource(authenticationMethodItem.getItemProperty("emailAttributeName")); this.userAccountNameAttributeName .setPropertyDataSource(authenticationMethodItem.getItemProperty("userAccountNameAttributeName")); this.accountTypeAttributeName .setPropertyDataSource(authenticationMethodItem.getItemProperty("accountTypeAttributeName")); this.applicationSecurityBaseDn .setPropertyDataSource(authenticationMethodItem.getItemProperty("applicationSecurityBaseDn")); this.applicationSecurityGroupAttributeName.setPropertyDataSource( authenticationMethodItem.getItemProperty("applicationSecurityGroupAttributeName")); this.departmentAttributeName .setPropertyDataSource(authenticationMethodItem.getItemProperty("departmentAttributeName")); this.firstNameAttributeName .setPropertyDataSource(authenticationMethodItem.getItemProperty("firstNameAttributeName")); this.surnameAttributeName .setPropertyDataSource(authenticationMethodItem.getItemProperty("surnameAttributeName")); this.ldapUserDescriptionAttributeName.setPropertyDataSource( authenticationMethodItem.getItemProperty("ldapUserDescriptionAttributeName")); this.applicationSecurityDescriptionAttributeName.setPropertyDataSource( authenticationMethodItem.getItemProperty("applicationSecurityDescriptionAttributeName")); this.memberofAttributeName .setPropertyDataSource(authenticationMethodItem.getItemProperty("memberofAttributeName")); Button saveButton = new Button("Save"); saveButton.addClickListener(new Button.ClickListener() { public void buttonClick(ClickEvent event) { try { logger.info("saving auth method: " + authenticationMethod); authenticationMethod.setMethod(SecurityConstants.AUTH_METHOD_LDAP); if (authenticationMethod.getOrder() == null) { authenticationMethod.setOrder(securityService.getNumberOfAuthenticationMethods() + 1); } securityService.saveOrUpdateAuthenticationMethod(authenticationMethod); } catch (RuntimeException e) { StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw); e.printStackTrace(pw); Notification.show("Error trying to save the authentication method!", sw.toString(), Notification.Type.ERROR_MESSAGE); return; } Notification.show("Saved!"); } }); GridLayout buttonLayout = new GridLayout(1, 1); buttonLayout.setWidth("200px"); buttonLayout.setHeight("20px"); buttonLayout.addComponent(saveButton); gridLayout.addComponent(buttonLayout, 0, 24, 1, 24); VerticalLayout wrapperLayout = new VerticalLayout(); wrapperLayout.addComponent(gridLayout); wrapperLayout.setComponentAlignment(gridLayout, Alignment.TOP_CENTER); securityAdministrationPanel.setContent(wrapperLayout); layout.addComponent(securityAdministrationPanel); this.setContent(layout); }