Example #1
0
  public BoardsBox(final ConfigureWorkflowModule configureWorkflowModule) {

    class IdProvider implements ListBoxWithAddEditDelete.IdProvider<Dtos.BoardWithProjectsDto> {

      @Override
      public String getId(Dtos.BoardWithProjectsDto dto) {
        return dto.getBoard().getId();
      }
    }

    class LabelProvider
        implements ListBoxWithAddEditDelete.LabelProvider<Dtos.BoardWithProjectsDto> {

      @Override
      public String getLabel(Dtos.BoardWithProjectsDto dto) {
        return dto.getBoard().getName();
      }
    }

    class Refresher implements ListBoxWithAddEditDelete.Refresher<Dtos.BoardWithProjectsDto> {

      @Override
      public void refrehs(
          List<Dtos.BoardWithProjectsDto> items, Dtos.BoardWithProjectsDto newItem, int index) {
        items.get(index).setBoard(newItem.getBoard());
      }
    }

    class OnChangeListener
        implements ListBoxWithAddEditDelete.OnChangeListener<Dtos.BoardWithProjectsDto> {

      @Override
      public void onChanged(
          List<Dtos.BoardWithProjectsDto> items, Dtos.BoardWithProjectsDto selectedItem) {
        if (items.isEmpty()) {
          if (projectToBoardAdding != null) {
            projectToBoardAdding.disable();
          }
        } else {
          configureWorkflowModule.selectedBoardChanged(selectedItem);
        }

        classOfServicesListManager.selectedBoardChanged(
            selectedItem == null ? null : selectedItem.getBoard());
      }
    }

    boardsList =
        new ListBoxWithAddEditDelete<>(
            "Boards",
            new IdProvider(),
            new LabelProvider(),
            new BoardCreatingComponent(),
            new BoardEditingComponent(),
            new BoardDeletingComponent(),
            new Refresher());

    classOfServiceList = classOfServicesListManager.create();

    boardsList.setOnChangeListener(new OnChangeListener());

    new MessageListeners();

    initWidget(uiBinder.createAndBindUi(this));

    addProjectButton.setEnabled(true);
    addProjectButton.getUpFace().setImage(new Image(KanbanikResources.INSTANCE.addButtonImage()));
    new ProjectCreatingComponent(addProjectButton);
  }