@Override
  protected Component generateTopControls() {
    VerticalLayout controlsBtnWrap = new VerticalLayout();
    controlsBtnWrap.setWidth("100%");
    final SplitButton controlsBtn = new SplitButton();
    controlsBtn.addStyleName(UIConstants.THEME_GREEN_LINK);
    controlsBtn.setCaption(AppContext.getMessage(OpportunityI18nEnum.BUTTON_NEW_OPPORTUNITY));
    controlsBtn.setIcon(FontAwesome.PLUS);
    controlsBtn.addClickListener(
        new SplitButton.SplitButtonClickListener() {
          private static final long serialVersionUID = 1L;

          @Override
          public void splitButtonClick(SplitButton.SplitButtonClickEvent event) {
            fireNewRelatedItem("");
          }
        });
    controlsBtn.setSizeUndefined();
    Button selectBtn =
        new Button(
            "Select from existing opportunities",
            new Button.ClickListener() {
              private static final long serialVersionUID = 1L;

              @Override
              public void buttonClick(Button.ClickEvent event) {
                ContactOpportunitySelectionWindow opportunitiesWindow =
                    new ContactOpportunitySelectionWindow(ContactOpportunityListComp.this);
                OpportunitySearchCriteria criteria = new OpportunitySearchCriteria();
                criteria.setSaccountid(new NumberSearchField(AppContext.getAccountId()));
                UI.getCurrent().addWindow(opportunitiesWindow);
                opportunitiesWindow.setSearchCriteria(criteria);
                controlsBtn.setPopupVisible(false);
              }
            });
    selectBtn.setIcon(CrmAssetsManager.getAsset(CrmTypeConstants.OPPORTUNITY));
    OptionPopupContent buttonControlsLayout = new OptionPopupContent();
    buttonControlsLayout.addOption(selectBtn);
    controlsBtn.setContent(buttonControlsLayout);

    controlsBtn.setEnabled(AppContext.canWrite(RolePermissionCollections.CRM_OPPORTUNITY));

    controlsBtnWrap.addComponent(controlsBtn);
    controlsBtnWrap.setComponentAlignment(controlsBtn, Alignment.MIDDLE_RIGHT);
    return controlsBtnWrap;
  }
Esempio n. 2
0
  @SuppressWarnings("serial")
  private void initUI() {
    final SplitButton controlsBtn = new SplitButton();
    controlsBtn.setEnabled(AppContext.canWrite(RolePermissionCollections.CRM_CONTACT));
    controlsBtn.addStyleName(UIConstants.THEME_BLUE_LINK);
    controlsBtn.setCaption("New Contact");
    controlsBtn.setIcon(MyCollabResource.newResource("icons/16/addRecord.png"));
    controlsBtn.addClickListener(
        new SplitButton.SplitButtonClickListener() {
          @Override
          public void splitButtonClick(SplitButton.SplitButtonClickEvent event) {
            fireNewRelatedItem("");
          }
        });
    Button selectBtn =
        new Button(
            "Select from existing contacts",
            new Button.ClickListener() {
              @Override
              public void buttonClick(Button.ClickEvent event) {
                CaseContactSelectionWindow contactsWindow =
                    new CaseContactSelectionWindow(CaseContactListComp.this);
                ContactSearchCriteria criteria = new ContactSearchCriteria();
                criteria.setSaccountid(new NumberSearchField(AppContext.getAccountId()));
                UI.getCurrent().addWindow(contactsWindow);
                contactsWindow.setSearchCriteria(criteria);
                controlsBtn.setPopupVisible(false);
              }
            });
    selectBtn.setIcon(MyCollabResource.newResource("icons/16/select.png"));
    selectBtn.setStyleName("link");

    VerticalLayout buttonControlsLayout = new VerticalLayout();
    buttonControlsLayout.addComponent(selectBtn);
    controlsBtn.setContent(buttonControlsLayout);

    controlsBtn.setEnabled(AppContext.canWrite(RolePermissionCollections.CRM_CONTACT));
    this.addComponent(controlsBtn);

    tableItem =
        new ContactTableDisplay(
            Arrays.asList(
                ContactTableFieldDef.name,
                ContactTableFieldDef.email,
                ContactTableFieldDef.phoneOffice,
                ContactTableFieldDef.account,
                ContactTableFieldDef.action));

    tableItem.addTableListener(
        new ApplicationEventListener<TableClickEvent>() {
          @Override
          public Class<? extends ApplicationEvent> getEventType() {
            return TableClickEvent.class;
          }

          @Override
          public void handle(TableClickEvent event) {
            SimpleContact contact = (SimpleContact) event.getData();
            if ("contactName".equals(event.getFieldName())) {
              EventBus.getInstance()
                  .fireEvent(new ContactEvent.GotoRead(CaseContactListComp.this, contact.getId()));
            }
          }
        });

    tableItem.addGeneratedColumn(
        "id",
        new Table.ColumnGenerator() {
          @Override
          public Object generateCell(Table source, Object itemId, Object columnId) {
            final SimpleContact contact = (SimpleContact) tableItem.getBeanByIndex(itemId);
            HorizontalLayout controlLayout = new HorizontalLayout();
            Button editBtn =
                new Button(
                    null,
                    new Button.ClickListener() {
                      @Override
                      public void buttonClick(Button.ClickEvent event) {
                        EventBus.getInstance()
                            .fireEvent(
                                new ContactEvent.GotoEdit(CaseContactListComp.this, contact));
                      }
                    });
            editBtn.setStyleName("link");
            editBtn.setIcon(MyCollabResource.newResource("icons/16/edit.png"));
            controlLayout.addComponent(editBtn);

            Button deleteBtn =
                new Button(
                    null,
                    new Button.ClickListener() {
                      @Override
                      public void buttonClick(Button.ClickEvent event) {
                        ConfirmDialogExt.show(
                            UI.getCurrent(),
                            LocalizationHelper.getMessage(
                                GenericI18Enum.DELETE_DIALOG_TITLE,
                                SiteConfiguration.getSiteName()),
                            LocalizationHelper.getMessage(
                                CrmCommonI18nEnum.DIALOG_DELETE_RELATIONSHIP_TITLE),
                            LocalizationHelper.getMessage(GenericI18Enum.BUTTON_YES_LABEL),
                            LocalizationHelper.getMessage(GenericI18Enum.BUTTON_NO_LABEL),
                            new ConfirmDialog.Listener() {
                              private static final long serialVersionUID = 1L;

                              @Override
                              public void onClose(ConfirmDialog dialog) {
                                if (dialog.isConfirmed()) {
                                  ContactService contactService =
                                      ApplicationContextUtil.getSpringBean(ContactService.class);
                                  ContactCase associateContact = new ContactCase();
                                  associateContact.setCaseid(cases.getId());
                                  associateContact.setContactid(contact.getId());
                                  contactService.removeContactCaseRelationship(
                                      associateContact, AppContext.getAccountId());
                                  CaseContactListComp.this.refresh();
                                }
                              }
                            });
                      }
                    });
            deleteBtn.setStyleName("link");
            deleteBtn.setIcon(MyCollabResource.newResource("icons/16/delete.png"));
            controlLayout.addComponent(deleteBtn);
            return controlLayout;
          }
        });
    this.addComponent(tableItem);
  }