public ConnectionProperties(DataSourcePresenter presenter) {
   this.presenter = presenter;
   propEditor = new PropertyEditor(presenter, true);
   propEditor.setHelpText("JDBC connection properties");
   widget = propEditor.asWidget();
   propEditor.setAllowEditProps(false);
 }
  Widget asWidget() {
    ToolStrip topLevelTools = new ToolStrip();
    topLevelTools.addToolButtonRight(
        new ToolButton(
            Console.CONSTANTS.common_label_add(),
            new ClickHandler() {

              @Override
              public void onClick(ClickEvent event) {
                presenter.launchNewAdminWizard();
              }
            }));

    ClickHandler clickHandler =
        new ClickHandler() {
          @Override
          public void onClick(ClickEvent event) {

            final AdminObject selection = getCurrentSelection();

            if (selection != null) {
              Feedback.confirm(
                  Console.MESSAGES.deleteTitle("Admin Object"),
                  Console.MESSAGES.deleteConfirm("Admin Object" + selection.getJndiName()),
                  new Feedback.ConfirmationHandler() {
                    @Override
                    public void onConfirmation(boolean isConfirmed) {
                      if (isConfirmed) {
                        presenter.onRemoveAdmin(selection);
                      }
                    }
                  });
            }
          }
        };

    ToolButton deleteBtn = new ToolButton(Console.CONSTANTS.common_label_delete());
    deleteBtn.addClickHandler(clickHandler);
    topLevelTools.addToolButtonRight(deleteBtn);

    disableBtn =
        new ToolButton(
            Console.CONSTANTS.common_label_disable(),
            new ClickHandler() {
              @Override
              public void onClick(ClickEvent event) {

                final AdminObject selection = getCurrentSelection();

                if (selection != null) {
                  selection.setEnabled(!selection.isEnabled());

                  Feedback.confirm(
                      Console.MESSAGES.modify("Admin Object"),
                      Console.MESSAGES.modifyConfirm("Admin Object " + selection.getJndiName()),
                      new Feedback.ConfirmationHandler() {
                        @Override
                        public void onConfirmation(boolean isConfirmed) {
                          if (isConfirmed) {
                            presenter.enOrDisbaleAdminObject(currentAdapter, selection);
                          }
                        }
                      });
                }
              }
            });
    topLevelTools.addToolButtonRight(disableBtn);

    // -------

    table =
        new DefaultCellTable<AdminObject>(
            10,
            new ProvidesKey<AdminObject>() {
              @Override
              public Object getKey(AdminObject item) {
                return item.getJndiName();
              }
            });

    dataProvider = new ListDataProvider<AdminObject>();
    dataProvider.addDataDisplay(table);

    TextColumn<AdminObject> nameColumn =
        new TextColumn<AdminObject>() {
          @Override
          public String getValue(AdminObject record) {
            return record.getName();
          }
        };

    Column<AdminObject, ImageResource> statusColumn =
        new Column<AdminObject, ImageResource>(new ImageResourceCell()) {
          @Override
          public ImageResource getValue(AdminObject ra) {

            ImageResource res = null;

            if (ra.isEnabled()) res = Icons.INSTANCE.status_good();
            else res = Icons.INSTANCE.status_bad();

            return res;
          }
        };

    table.addColumn(nameColumn, "Name");
    table.addColumn(statusColumn, "Enabled?");

    // ---

    configProperties = new PropertyEditor(this, true);

    // ----

    VerticalPanel formpanel = new VerticalPanel();
    formpanel.setStyleName("fill-layout-width");

    Form<AdminObject> form = new Form<AdminObject>(AdminObject.class);
    form.setNumColumns(2);

    TextItem name = new TextItem("name", "Name");
    TextBoxItem jndiItem = new TextBoxItem("jndiName", "JNDI");
    TextBoxItem classItem = new TextBoxItem("adminClass", "Class Name");
    // CheckBoxItem enabled = new CheckBoxItem("enabled", "Enabled?");

    form.setFields(name, jndiItem, classItem);

    form.setEnabled(false);
    form.bind(table);

    FormToolStrip<AdminObject> tools =
        new FormToolStrip<AdminObject>(
            form,
            new FormToolStrip.FormCallback<AdminObject>() {
              @Override
              public void onSave(Map<String, Object> changeset) {
                presenter.onSaveAdmin(getCurrentSelection(), changeset);
              }

              @Override
              public void onDelete(AdminObject entity) {
                // not possible
              }
            });

    tools.providesDeleteOp(false);

    final FormHelpPanel helpPanel =
        new FormHelpPanel(
            new FormHelpPanel.AddressCallback() {
              @Override
              public ModelNode getAddress() {
                ModelNode address = Baseadress.get();
                address.add("subsystem", "resource-adapters");
                address.add("resource-adapter", "*");
                address.add("admin-objects", "*");
                return address;
              }
            },
            form);

    formpanel.add(tools.asWidget());
    formpanel.add(helpPanel.asWidget());
    formpanel.add(form.asWidget());

    table
        .getSelectionModel()
        .addSelectionChangeHandler(
            new SelectionChangeEvent.Handler() {

              public void onSelectionChange(SelectionChangeEvent event) {
                AdminObject selection = getCurrentSelection();
                configProperties.setProperties("", selection.getProperties());

                String nextState =
                    selection.isEnabled()
                        ? Console.CONSTANTS.common_label_disable()
                        : Console.CONSTANTS.common_label_enable();
                disableBtn.setText(nextState);
              }
            });

    // ----

    headline = new HTML("HEADLINE");
    headline.setStyleName("content-header-label");

    MultipleToOneLayout layout =
        new MultipleToOneLayout()
            .setPlain(true)
            .setHeadlineWidget(headline)
            .setTitle("TITLE")
            .setDescription(Console.CONSTANTS.subsys_jca_adminobject_desc())
            .setMaster(Console.MESSAGES.available("Admin Objects"), table)
            .setMasterTools(topLevelTools.asWidget())
            .addDetail("Attributes", formpanel)
            .addDetail("Properties", configProperties.asWidget());

    configProperties.setAllowEditProps(false);

    return layout.build();
  }
Exemple #3
0
  Widget asWidget() {
    table =
        new DefaultCellTable<JGroupsProtocol>(
            6,
            new ProvidesKey<JGroupsProtocol>() {
              @Override
              public Object getKey(JGroupsProtocol item) {
                return item.getType();
              }
            });
    dataProvider = new ListDataProvider<JGroupsProtocol>();
    dataProvider.addDataDisplay(table);

    TextColumn<JGroupsProtocol> type =
        new TextColumn<JGroupsProtocol>() {
          @Override
          public String getValue(JGroupsProtocol record) {
            return record.getType();
          }
        };

    table.addColumn(type, "Type");

    ToolStrip toolstrip = new ToolStrip();

    ToolButton addBtn =
        new ToolButton(
            Console.CONSTANTS.common_label_append(),
            new ClickHandler() {
              @Override
              public void onClick(ClickEvent event) {
                presenter.launchNewProtocolWizard();
              }
            });
    toolstrip.addToolButtonRight(addBtn);

    ToolButton removeBtn =
        new ToolButton(
            Console.CONSTANTS.common_label_remove(),
            new ClickHandler() {
              @Override
              public void onClick(ClickEvent event) {
                Feedback.confirm(
                    Console.MESSAGES.deleteTitle("Protocol"),
                    Console.MESSAGES.deleteConfirm("Protocol"),
                    new Feedback.ConfirmationHandler() {
                      @Override
                      public void onConfirmation(boolean isConfirmed) {
                        if (isConfirmed) presenter.onDeleteProtocol(form.getEditedEntity());
                      }
                    });
              }
            });

    toolstrip.addToolButtonRight(removeBtn);

    // ------

    this.propertyEditor = new PropertyEditor(presenter, true);

    // ------

    form = new Form<JGroupsProtocol>(JGroupsProtocol.class);
    form.setNumColumns(2);

    TextItem typeField = new TextItem("type", "Type");
    TextBoxItem socket = new TextBoxItem("socketBinding", "Socket Binding");

    form.setFields(typeField, socket);
    form.setEnabled(false);

    FormHelpPanel helpPanel =
        new FormHelpPanel(
            new FormHelpPanel.AddressCallback() {
              @Override
              public ModelNode getAddress() {
                ModelNode address = Baseadress.get();
                address.add("subsystem", "jgroups");
                address.add("stack", "*");
                address.add("protocol", "*");
                return address;
              }
            },
            form);

    FormToolStrip<JGroupsProtocol> formToolStrip =
        new FormToolStrip<JGroupsProtocol>(
            form,
            new FormToolStrip.FormCallback<JGroupsProtocol>() {
              @Override
              public void onSave(Map<String, Object> changeset) {
                presenter.onSaveProtocol(form.getEditedEntity(), changeset);
              }

              @Override
              public void onDelete(JGroupsProtocol entity) {}
            });
    formToolStrip.providesDeleteOp(false);

    Widget detail =
        new FormLayout().setForm(form).setHelp(helpPanel).setSetTools(formToolStrip).build();

    headline = new HTML();
    headline.setStyleName("content-header-label");

    Widget panel =
        new MultipleToOneLayout()
            .setPlain(true)
            .setTitle("JGroups")
            .setHeadlineWidget(headline)
            .setDescription(Console.CONSTANTS.subsys_jgroups_protocol_desc())
            .setMaster(Console.MESSAGES.available("Protocols"), table)
            .setMasterTools(toolstrip.asWidget())
            .addDetail("Attributes", detail)
            .addDetail("Properties", propertyEditor.asWidget())
            .build();

    form.bind(table);
    propertyEditor.setAllowEditProps(false);

    table
        .getSelectionModel()
        .addSelectionChangeHandler(
            new SelectionChangeEvent.Handler() {
              @Override
              public void onSelectionChange(SelectionChangeEvent event) {
                JGroupsProtocol currentSelection = getCurrentSelection();
                List<PropertyRecord> properties = currentSelection.getProperties();
                if (properties != null)
                  propertyEditor.setProperties(
                      selectedStack.getName() + "_#_" + currentSelection.getType(), properties);
                else
                  propertyEditor.setProperties(
                      selectedStack.getName() + "_#_" + currentSelection.getType(),
                      Collections.EMPTY_LIST);
              }
            });
    return panel;
  }