public void createBasicLayout() { this.messagePanelBody.removeAllComponents(); this.messagePanelBody.addComponent(this.messageSearchPanel); final Button createMessageBtn = new Button( LocalizationHelper.getMessage(MessageI18nEnum.NEW_MESSAGE_ACTION), new Button.ClickListener() { private static final long serialVersionUID = 1L; @Override public void buttonClick(final ClickEvent event) { TopMessagePanel.this.createAddMessageLayout(); } }); createMessageBtn.setEnabled( CurrentProjectVariables.canWrite(ProjectRolePermissionCollections.MESSAGES)); createMessageBtn.setStyleName(UIConstants.THEME_BLUE_LINK); createMessageBtn.setIcon(MyCollabResource.newResource("icons/16/addRecord.png")); createMessageBtn.setEnabled( CurrentProjectVariables.canWrite(ProjectRolePermissionCollections.MESSAGES)); this.messagePanelBody.addComponent(createMessageBtn); this.messagePanelBody.setComponentAlignment(createMessageBtn, Alignment.MIDDLE_RIGHT); }
@Override protected String initFormTitle() { // check if there is converted lead associates with this contact LeadService leadService = ApplicationContextUtil.getSpringBean(LeadService.class); SimpleLead lead = leadService.findConvertedLeadOfContact(beanItem.getId(), AppContext.getAccountId()); if (lead != null) { return "<h2>" + beanItem.getContactName() + LocalizationHelper.getMessage( LeadI18nEnum.CONVERT_FROM_LEAD_TITLE, CrmResources.getResourceLink(CrmTypeConstants.LEAD), CrmLinkGenerator.generateCrmItemLink(CrmTypeConstants.LEAD, lead.getId()), lead.getLeadName()) + "</h2>"; } else { return beanItem.getContactName(); } }
private HorizontalLayout createSearchTopPanel() { final HorizontalLayout layout = new HorizontalLayout(); layout.setWidth("100%"); layout.setSpacing(true); layout.setMargin(true); final Image titleIcon = new Image(null, MyCollabResource.newResource("icons/24/project/component.png")); layout.addComponent(titleIcon); layout.setComponentAlignment(titleIcon, Alignment.MIDDLE_LEFT); final Label componenttitle = new Label("Components"); componenttitle.setStyleName(Reindeer.LABEL_H2); layout.addComponent(componenttitle); layout.setExpandRatio(componenttitle, 1.0f); layout.setComponentAlignment(componenttitle, Alignment.MIDDLE_LEFT); final Button createBtn = new Button( LocalizationHelper.getMessage(BugI18nEnum.NEW_COMPONENT_ACTION), new Button.ClickListener() { private static final long serialVersionUID = 1L; @Override public void buttonClick(final Button.ClickEvent event) { EventBus.getInstance().fireEvent(new BugComponentEvent.GotoAdd(this, null)); } }); createBtn.setEnabled( CurrentProjectVariables.canWrite(ProjectRolePermissionCollections.COMPONENTS)); createBtn.setStyleName(UIConstants.THEME_BLUE_LINK); createBtn.setIcon(MyCollabResource.newResource("icons/16/addRecord.png")); UiUtils.addComponent(layout, createBtn, Alignment.MIDDLE_RIGHT); return layout; }
private void showTaskGroupInfo() { if (this.isDisplayTaskListInfo) { this.layoutHelper = new GridFormLayoutHelper(2, 3, "100%", "180px", Alignment.MIDDLE_LEFT); this.layoutHelper.getLayout().setWidth("100%"); this.layoutHelper.getLayout().addStyleName("colored-gridlayout"); this.layoutHelper.getLayout().setMargin(false); this.addComponent(this.layoutHelper.getLayout()); final Label descLbl = (Label) this.layoutHelper.addComponent( new Label(), "Description", 0, 0, 2, "100%", Alignment.TOP_RIGHT); descLbl.setContentMode(ContentMode.HTML); descLbl.setValue(StringUtils.preStringFormat(this.taskList.getDescription())); this.layoutHelper.addComponent( new ProjectUserFormLinkField( this.taskList.getOwner(), this.taskList.getOwnerAvatarId(), this.taskList.getOwnerFullName()), LocalizationHelper.getMessage(GenericI18Enum.FORM_ASSIGNEE_FIELD), 0, 1, Alignment.TOP_RIGHT); final DefaultFormViewFieldFactory.FormLinkViewField milestoneLink = new DefaultFormViewFieldFactory.FormLinkViewField( this.taskList.getMilestoneName(), new Button.ClickListener() { private static final long serialVersionUID = 1L; @Override public void buttonClick(final Button.ClickEvent event) { EventBus.getInstance() .fireEvent( new MilestoneEvent.GotoRead( this, TaskDisplayComponent.this.taskList.getMilestoneid())); } }, MyCollabResource.newResource("icons/16/project/milestone.png")); this.layoutHelper.addComponent( milestoneLink, LocalizationHelper.getMessage(TaskI18nEnum.FORM_PHASE_FIELD), 1, 1, Alignment.TOP_RIGHT); this.taskListProgress = (ProgressPercentageIndicator) this.layoutHelper.addComponent( new ProgressPercentageIndicator(this.taskList.getPercentageComplete()), "Progress", 0, 2); this.taskListProgress.setWidth("100px"); HorizontalLayout taskNumberProgress = new HorizontalLayout(); taskNumberProgress.setSpacing(true); taskNumberProgress = (HorizontalLayout) this.layoutHelper.addComponent(taskNumberProgress, "Number of open tasks", 1, 2); this.taskNumberLbl = new Label( "(" + this.taskList.getNumOpenTasks() + "/" + this.taskList.getNumAllTasks() + ")"); taskNumberProgress.addComponent(this.taskNumberLbl); } this.taskDisplay = new TaskTableDisplay( new String[] { "id", "taskname", "startdate", "deadline", "percentagecomplete", "assignUserFullName" }, new String[] { "", LocalizationHelper.getMessage(TaskI18nEnum.TABLE_TASK_NAME_HEADER), LocalizationHelper.getMessage(TaskI18nEnum.TABLE_START_DATE_HEADER), LocalizationHelper.getMessage(TaskI18nEnum.TABLE_DUE_DATE_HEADER), LocalizationHelper.getMessage(TaskI18nEnum.TABLE_PER_COMPLETE_HEADER), LocalizationHelper.getMessage(TaskI18nEnum.TABLE_ASSIGNEE_HEADER) }); this.addComponent(this.taskDisplay); this.taskDisplay.addTableListener( new ApplicationEventListener<TableClickEvent>() { private static final long serialVersionUID = 1L; @Override public Class<? extends ApplicationEvent> getEventType() { return TableClickEvent.class; } @Override public void handle(final TableClickEvent event) { final SimpleTask task = (SimpleTask) event.getData(); if ("taskname".equals(event.getFieldName())) { EventBus.getInstance() .fireEvent(new TaskEvent.GotoRead(TaskDisplayComponent.this, task.getId())); } else if ("closeTask".equals(event.getFieldName()) || "reopenTask".equals(event.getFieldName()) || "pendingTask".equals(event.getFieldName()) || "deleteTask".equals(event.getFieldName())) { TaskDisplayComponent.this.removeAllComponents(); final ProjectTaskListService taskListService = ApplicationContextUtil.getSpringBean(ProjectTaskListService.class); TaskDisplayComponent.this.taskList = taskListService.findById( TaskDisplayComponent.this.taskList.getId(), AppContext.getAccountId()); TaskDisplayComponent.this.showTaskGroupInfo(); } } }); this.createTaskBtn = new Button( LocalizationHelper.getMessage(TaskI18nEnum.NEW_TASK_ACTION), new Button.ClickListener() { private static final long serialVersionUID = 1L; @Override public void buttonClick(final Button.ClickEvent event) { TaskDisplayComponent.this.removeAllComponents(); final TaskAddPopup taskAddView = new TaskAddPopup(TaskDisplayComponent.this, TaskDisplayComponent.this.taskList); if (TaskDisplayComponent.this.layoutHelper != null) { TaskDisplayComponent.this.addComponent( TaskDisplayComponent.this.layoutHelper.getLayout(), 0); TaskDisplayComponent.this.addComponent(TaskDisplayComponent.this.taskDisplay, 1); TaskDisplayComponent.this.addComponent(taskAddView, 2); } else { TaskDisplayComponent.this.addComponent(TaskDisplayComponent.this.taskDisplay, 0); TaskDisplayComponent.this.addComponent(taskAddView, 1); } TaskDisplayComponent.this.removeComponent(TaskDisplayComponent.this.createTaskBtn); } }); this.createTaskBtn.setEnabled( CurrentProjectVariables.canWrite(ProjectRolePermissionCollections.TASKS)); this.createTaskBtn.setIcon(MyCollabResource.newResource("icons/16/addRecord.png")); this.createTaskBtn.setStyleName(UIConstants.THEME_BLUE_LINK); final VerticalLayout taskGroupFooter = new VerticalLayout(); taskGroupFooter.setMargin(true); taskGroupFooter.addStyleName("task-list-footer"); taskGroupFooter.addComponent(this.createTaskBtn); taskGroupFooter.setComponentAlignment(this.createTaskBtn, Alignment.MIDDLE_RIGHT); this.addComponent(taskGroupFooter); this.taskDisplay.setItems(this.taskList.getSubTasks()); }
private void displayUserAvatar() { this.userAvatar.removeAllComponents(); this.userAvatar.addStyleName("avatar-pass-wrapper"); this.userAvatar.setMargin(true); final Image cropField = UserAvatarControlFactory.createUserAvatarEmbeddedComponent( AppContext.getUserAvatarId(), 100); final HorizontalLayout avatarAndPass = new HorizontalLayout(); avatarAndPass.setSpacing(true); avatarAndPass.setWidth("100%"); avatarAndPass.addComponent(cropField); final Button btnChangePassword = new Button( LocalizationHelper.getMessage(UserI18nEnum.BUTTON_CHANGE_PASSWORD), new Button.ClickListener() { private static final long serialVersionUID = 1L; @Override public void buttonClick(final ClickEvent event) { UI.getCurrent().addWindow(new PasswordChangeWindow(formItem.user)); } }); final VerticalLayout passLayout = new VerticalLayout(); passLayout.setMargin(new MarginInfo(true, false, false, false)); final Label userName = new Label(AppContext.getSession().getDisplayName()); userName.setStyleName("h1"); passLayout.addComponent(userName); passLayout.addComponent(btnChangePassword); btnChangePassword.setStyleName("link"); passLayout.setComponentAlignment(btnChangePassword, Alignment.MIDDLE_LEFT); avatarAndPass.addComponent(passLayout); avatarAndPass.setComponentAlignment(passLayout, Alignment.TOP_LEFT); avatarAndPass.setExpandRatio(passLayout, 1.0f); this.userAvatar.addComponent(avatarAndPass); final UploadField avatarUploadField = new UploadField() { private static final long serialVersionUID = 1L; @Override protected void updateDisplay() { byte[] imageData = (byte[]) this.getValue(); String mimeType = this.getLastMimeType(); if (mimeType.equals("image/jpeg")) { imageData = ImageUtil.convertJpgToPngFormat(imageData); if (imageData == null) { throw new UserInvalidInputException("Do not support image format for avatar"); } else { mimeType = "image/png"; } } if (mimeType.equals("image/png")) { EventBus.getInstance() .fireEvent(new ProfileEvent.GotoUploadPhoto(ProfileReadViewImpl.this, imageData)); } else { throw new UserInvalidInputException( "Upload file does not have valid image format. The supported formats are jpg/png"); } } }; avatarUploadField.setButtonCaption("Change Avatar"); avatarUploadField.setFieldType(FieldType.BYTE_ARRAY); this.userAvatar.addComponent(avatarUploadField); }
@Override public Layout getLayout() { final ReadViewLayout accountAddLayout = new ReadViewLayout( "User Information", MyCollabResource.newResource("icons/22/user/menu_profile.png")); accountAddLayout.setWidth("100%"); final VerticalLayout layout = new VerticalLayout(); layout.addComponent(userAvatar); final CssLayout basicInformationHeader = new CssLayout(); basicInformationHeader.setWidth("100%"); basicInformationHeader.addStyleName("info-block-header"); final Label basicInformationHeaderLbl = new Label("Basic Information"); basicInformationHeaderLbl.setStyleName("h2"); basicInformationHeaderLbl.setWidth(Sizeable.SIZE_UNDEFINED, Sizeable.Unit.PIXELS); basicInformationHeader.addComponent(basicInformationHeaderLbl); final CssLayout contactInformationHeader = new CssLayout(); contactInformationHeader.setWidth("100%"); contactInformationHeader.addStyleName("info-block-header"); final Label contactInformationHeaderLbl = new Label("Contact Information"); contactInformationHeaderLbl.setStyleName("h2"); contactInformationHeaderLbl.setWidth(Sizeable.SIZE_UNDEFINED, Sizeable.Unit.PIXELS); contactInformationHeader.addComponent(contactInformationHeaderLbl); final CssLayout advanceInfoHeader = new CssLayout(); advanceInfoHeader.setWidth("100%"); advanceInfoHeader.addStyleName("info-block-header"); final Label advanceInfoHeaderLbl = new Label("Advanced Information"); advanceInfoHeaderLbl.setStyleName("h2"); advanceInfoHeaderLbl.setWidth(Sizeable.SIZE_UNDEFINED, Sizeable.Unit.PIXELS); advanceInfoHeader.addComponent(advanceInfoHeaderLbl); this.basicInformation = new GridFormLayoutHelper(1, 6, "100%", "167px", Alignment.MIDDLE_LEFT); this.basicInformation.getLayout().setMargin(false); this.basicInformation.getLayout().setWidth("100%"); this.basicInformation.getLayout().addStyleName("colored-gridlayout"); this.contactInformation = new GridFormLayoutHelper(1, 5, "100%", "167px", Alignment.MIDDLE_LEFT); this.contactInformation.getLayout().setMargin(false); this.contactInformation.getLayout().setWidth("100%"); this.contactInformation.getLayout().addStyleName("colored-gridlayout"); this.advanceInformation = new GridFormLayoutHelper(1, 3, "100%", "167px", Alignment.MIDDLE_LEFT); this.advanceInformation.getLayout().setMargin(false); this.advanceInformation.getLayout().setWidth("100%"); this.advanceInformation.getLayout().addStyleName("colored-gridlayout"); layout.addComponent(basicInformationHeader); layout.addComponent(this.basicInformation.getLayout()); final Button btnChangeBasicInfo = new Button( LocalizationHelper.getMessage(GenericI18Enum.BUTTON_EDIT_LABEL), new Button.ClickListener() { private static final long serialVersionUID = 1L; @Override public void buttonClick(final ClickEvent event) { UI.getCurrent().addWindow(new BasicInfoChangeWindow(PreviewForm.this.user)); } }); btnChangeBasicInfo.addStyleName("link"); basicInformationHeader.addComponent(btnChangeBasicInfo); layout.addComponent(contactInformationHeader); layout.addComponent(this.contactInformation.getLayout()); final Button btnChangeContactInfo = new Button( LocalizationHelper.getMessage(GenericI18Enum.BUTTON_EDIT_LABEL), new Button.ClickListener() { private static final long serialVersionUID = 1L; @Override public void buttonClick(final ClickEvent event) { UI.getCurrent().addWindow(new ContactInfoChangeWindow(PreviewForm.this.user)); } }); btnChangeContactInfo.addStyleName("link"); contactInformationHeader.addComponent(btnChangeContactInfo); layout.addComponent(advanceInfoHeader); layout.addComponent(this.advanceInformation.getLayout()); final Button btnChangeAdvanceInfo = new Button( LocalizationHelper.getMessage(GenericI18Enum.BUTTON_EDIT_LABEL), new Button.ClickListener() { private static final long serialVersionUID = 1L; @Override public void buttonClick(final ClickEvent event) { UI.getCurrent().addWindow(new AdvancedInfoChangeWindow(PreviewForm.this.user)); } }); btnChangeAdvanceInfo.addStyleName("link"); advanceInfoHeader.addComponent(btnChangeAdvanceInfo); accountAddLayout.addBody(layout); return accountAddLayout; }
public interface AccountTableFieldDef { public static TableViewField selected = new TableViewField("", "selected", UIConstants.TABLE_CONTROL_WIDTH); public static TableViewField action = new TableViewField("", "id", UIConstants.TABLE_ACTION_CONTROL_WIDTH); public static TableViewField accountname = new TableViewField( LocalizationHelper.getMessage(CrmCommonI18nEnum.TABLE_NAME_HEADER), "accountname", UIConstants.TABLE_X_LABEL_WIDTH); public static TableViewField city = new TableViewField( LocalizationHelper.getMessage(CrmCommonI18nEnum.TABLE_CITY_HEADER), "city", UIConstants.TABLE_X_LABEL_WIDTH); public static TableViewField phoneoffice = new TableViewField( LocalizationHelper.getMessage(CrmCommonI18nEnum.TABLE_OFFICE_PHONE_HEADER), "phoneoffice", UIConstants.TABLE_M_LABEL_WIDTH); public static TableViewField email = new TableViewField( LocalizationHelper.getMessage(CrmCommonI18nEnum.TABLE_EMAIL_ADDRESS_HEADER), "email", UIConstants.TABLE_EMAIL_WIDTH); public static TableViewField assignUser = new TableViewField( LocalizationHelper.getMessage(CrmCommonI18nEnum.TABLE_ASSIGNED_USER_HEADER), "assignUserFullName", UIConstants.TABLE_X_LABEL_WIDTH); public static TableViewField website = new TableViewField( LocalizationHelper.getMessage(CrmCommonI18nEnum.TABLE_WEBSITE_HEADER), "website", UIConstants.TABLE_X_LABEL_WIDTH); public static TableViewField type = new TableViewField( LocalizationHelper.getMessage(AccountI18nEnum.FORM_TYPE), "type", UIConstants.TABLE_X_LABEL_WIDTH); public static TableViewField ownership = new TableViewField( LocalizationHelper.getMessage(AccountI18nEnum.FORM_OWNERSHIP), "ownership", UIConstants.TABLE_X_LABEL_WIDTH); public static TableViewField fax = new TableViewField( LocalizationHelper.getMessage(AccountI18nEnum.FORM_FAX), "fax", UIConstants.TABLE_M_LABEL_WIDTH); }
private void createAddMessageLayout() { this.messagePanelBody.removeAllComponents(); final VerticalLayout addMessageWrapper = new VerticalLayout(); addMessageWrapper.setSpacing(true); addMessageWrapper.setWidth("500px"); final RichTextArea ckEditorTextField = new RichTextArea(); final AttachmentPanel attachments = new AttachmentPanel(); final TextField titleField = new TextField(); final HorizontalLayout titleLayout = new HorizontalLayout(); titleLayout.setSpacing(true); final Label titleLbl = new Label("Title: "); titleLbl.setWidth(SIZE_UNDEFINED, Sizeable.Unit.PIXELS); titleField.setWidth("100%"); titleField.setNullRepresentation(""); titleField.setRequired(true); titleField.setRequiredError("Please enter a Title"); titleLayout.addComponent(titleLbl); titleLayout.addComponent(titleField); titleLayout.setExpandRatio(titleField, 1.0f); titleLayout.setWidth("100%"); addMessageWrapper.addComponent(titleLayout); addMessageWrapper.setComponentAlignment(titleLayout, Alignment.MIDDLE_LEFT); ckEditorTextField.setWidth("100%"); ckEditorTextField.setHeight("200px"); addMessageWrapper.addComponent(ckEditorTextField); addMessageWrapper.setExpandRatio(ckEditorTextField, 1.0f); addMessageWrapper.addComponent(attachments); addMessageWrapper.setComponentAlignment(ckEditorTextField, Alignment.MIDDLE_CENTER); final HorizontalLayout controls = new HorizontalLayout(); controls.setWidth("100%"); controls.setSpacing(true); final MultiFileUploadExt uploadExt = new MultiFileUploadExt(attachments); controls.addComponent(uploadExt); controls.setExpandRatio(uploadExt, 1.0f); controls.setComponentAlignment(uploadExt, Alignment.MIDDLE_LEFT); final CheckBox chkIsStick = new CheckBox("Is Stick"); controls.addComponent(chkIsStick); controls.setComponentAlignment(chkIsStick, Alignment.MIDDLE_CENTER); final Button cancelBtn = new Button( LocalizationHelper.getMessage(GenericI18Enum.BUTTON_CANCEL_LABEL), new Button.ClickListener() { private static final long serialVersionUID = 1L; @Override public void buttonClick(final ClickEvent event) { TopMessagePanel.this.createBasicLayout(); } }); cancelBtn.setStyleName("link"); controls.addComponent(cancelBtn); controls.setComponentAlignment(cancelBtn, Alignment.MIDDLE_CENTER); final Button saveBtn = new Button( "Post", new Button.ClickListener() { private static final long serialVersionUID = 1L; @Override public void buttonClick(final ClickEvent event) { final Message message = new Message(); message.setProjectid(CurrentProjectVariables.getProjectId()); message.setPosteddate(new GregorianCalendar().getTime()); if (!titleField.getValue().toString().trim().equals("")) { message.setTitle(titleField.getValue()); message.setMessage(ckEditorTextField.getValue()); message.setPosteduser(AppContext.getUsername()); message.setSaccountid(AppContext.getAccountId()); message.setIsstick(chkIsStick.getValue()); MessageListViewImpl.this.fireSaveItem(message); String attachmentPath = AttachmentUtils.getProjectEntityAttachmentPath( AppContext.getAccountId(), message.getProjectid(), AttachmentType.PROJECT_MESSAGE, message.getId()); attachments.saveContentsToRepo(attachmentPath); } else { titleField.addStyleName("errorField"); NotificationUtil.showErrorNotification("Title must be not null!"); } } }); saveBtn.setStyleName(UIConstants.THEME_BLUE_LINK); controls.addComponent(saveBtn); controls.setComponentAlignment(saveBtn, Alignment.MIDDLE_CENTER); addMessageWrapper.addComponent(controls); addMessageWrapper.setComponentAlignment(controls, Alignment.MIDDLE_CENTER); this.messagePanelBody.addComponent(addMessageWrapper); }