コード例 #1
0
  @Override
  public Grid<ModelData> initGrid(ListStore<ModelData> store) {
    List<ColumnConfig> columns = new ArrayList<ColumnConfig>();

    XTemplate tpl = XTemplate.create("<p><b>Message:</b> {message}</p>");

    RowExpander expander = new RowExpander();
    expander.setTemplate(tpl);

    ColumnConfig columnConfig = configColumn(JobExecEventBeanDesc.priorityRank, 50);
    columnConfig.setRenderer(
        new GridCellRenderer<ModelData>() {

          public Object render(
              ModelData model,
              String property,
              ColumnData config,
              int rowIndex,
              int colIndex,
              ListStore<ModelData> store,
              Grid<ModelData> grid) {
            ExecutionStatus status = (ExecutionStatus) model.get(property);

            ImageResource imageResource = null;

            if (status == ExecutionStatus.OK) {
              imageResource = Icons.INSTANCE.accept();
            } else if (status == ExecutionStatus.RUNNING) {
              imageResource = Icons.INSTANCE.execute();
            } else if (status == ExecutionStatus.WARNING) {
              imageResource = Icons.INSTANCE.error();
            } else if (status == ExecutionStatus.ERROR) {
              imageResource = Icons.INSTANCE.exclamation();
            } else {
              imageResource = Icons.INSTANCE.information();
            }

            return new Image(imageResource);
          }
        });

    columns.add(expander);
    columns.add(configColumn(JobExecEventBeanDesc.origin, 50));
    columns.add(configColumn(JobExecEventBeanDesc.source, 50));
    columns.add(columnConfig);
    columns.add(configColumn(JobExecEventBeanDesc.time, 120));

    final ColumnModel cm = new ColumnModel(columns);

    Grid<ModelData> grid = new Grid<ModelData>(store, cm);
    grid.getSelectionModel().setSelectionMode(SelectionMode.SINGLE);
    grid.addPlugin(expander);

    return grid;
  }
コード例 #2
0
  @Override
  public ColumnModel prepareColumnModel() {
    List<ColumnConfig> configs = new ArrayList<ColumnConfig>();

    ColumnConfig nameColumn = new ColumnConfig();
    nameColumn.setId(GPSimpleUserKeyValue.NAME.toString());
    nameColumn.setHeader("Name");
    configs.add(nameColumn);

    ColumnConfig usernameColumn = new ColumnConfig();
    usernameColumn.setId(GPSimpleUserKeyValue.USERNAME.toString());
    usernameColumn.setHeader("Username");
    usernameColumn.setWidth(120);
    configs.add(usernameColumn);

    CheckColumnConfig enabledColumn = new CheckColumnConfig();
    enabledColumn.setId(GPUserManageDetailKeyValue.ENABLED.toString());
    enabledColumn.setHeader("Enabled");
    enabledColumn.setWidth(50);
    enabledColumn.setFixed(true);
    configs.add(enabledColumn);

    CheckColumnConfig tempColumn = new CheckColumnConfig();
    tempColumn.setId(GPUserManageDetailKeyValue.TEMPORARY.toString());
    tempColumn.setHeader("Temporary");
    tempColumn.setWidth(65);
    tempColumn.setFixed(true);
    configs.add(tempColumn);

    ColumnConfig roleColumn = new ColumnConfig();
    roleColumn.setId(GPSimpleUserKeyValue.AUTORITHY.toString());
    roleColumn.setHeader("Role");
    roleColumn.setWidth(80);
    configs.add(roleColumn);

    ColumnConfig trustedLevelColumn = new ColumnConfig();
    trustedLevelColumn.setId(GPSimpleUserKeyValue.TRUSTED_LEVEL.toString());
    trustedLevelColumn.setHeader("Trusted");
    trustedLevelColumn.setWidth(70);
    configs.add(trustedLevelColumn);

    ColumnConfig delColumn = new ColumnConfig();
    delColumn.setId("delColumn");
    delColumn.setHeader("Delete");
    delColumn.setWidth(40);
    delColumn.setFixed(true);
    delColumn.setResizable(false);
    delColumn.setSortable(false);
    delColumn.setRenderer(new DeleteUserRenderer());
    configs.add(delColumn);

    return new ColumnModel(configs);
  }
コード例 #3
0
  private ColumnModel getColumnModel() {

    final DateTimeFormat dateFormat = DateTimeFormat.getFormat("dd/MM/yyyy");
    final NumberFormat number = NumberFormat.getFormat("R$ 0.00");

    GridCellRenderer<DTOContrato> numberRender =
        new GridCellRenderer<DTOContrato>() {
          public String render(
              DTOContrato model,
              String property,
              ColumnData config,
              int rowIndex,
              int colIndex,
              ListStore<DTOContrato> store,
              Grid<DTOContrato> grid) {
            float val = (Float) model.get(property);
            return number.format(val);
          }
        };

    List<ColumnConfig> configs = new ArrayList<ColumnConfig>();

    ColumnConfig columnConfig = new ColumnConfig("id", "Código", 50);
    configs.add(columnConfig);

    columnConfig = new ColumnConfig("nomeCliente", "Cliente", 250);
    configs.add(columnConfig);

    columnConfig = new ColumnConfig("dataInicio", "Início", 80);
    columnConfig.setDateTimeFormat(dateFormat);
    columnConfig.setAlignment(HorizontalAlignment.CENTER);
    configs.add(columnConfig);

    columnConfig = new ColumnConfig("dataTermino", "Término", 80);
    columnConfig.setDateTimeFormat(dateFormat);
    columnConfig.setAlignment(HorizontalAlignment.CENTER);
    configs.add(columnConfig);

    columnConfig = new ColumnConfig("valor", "Valor", 80);
    columnConfig.setRenderer(numberRender);
    columnConfig.setAlignment(HorizontalAlignment.RIGHT);
    configs.add(columnConfig);

    return new ColumnModel(configs);
  }
コード例 #4
0
  private Grid<BeanModel> createGrid() {
    List<ColumnConfig> configs = new ArrayList<ColumnConfig>();
    ColumnConfig column = new ColumnConfig();

    column.setId("containerNo");
    column.setHeader("集装箱号");
    column.setWidth(100);
    column.setRowHeader(true);
    configs.add(column);

    GridCellRenderer<BeanModel> sizeCellRenderer =
        new GridCellRenderer<BeanModel>() {

          @Override
          public Object render(
              BeanModel model,
              String property,
              ColumnData config,
              int rowIndex,
              int colIndex,
              ListStore<BeanModel> store,
              Grid<BeanModel> grid) {
            String code = model.get(property);
            ContainerSize containerSize = containerSizeStore.findModel("code", code).getBean();
            return containerSize.getSize();
          }
        };

    column = new ColumnConfig();
    column.setRenderer(sizeCellRenderer);
    column.setId("size");
    column.setHeader("尺寸");
    column.setWidth(100);
    configs.add(column);

    column = new ColumnConfig();
    column.setId("valentNum");
    column.setHeader("标准箱个数");
    column.setWidth(100);
    configs.add(column);

    ColumnModel cm = new ColumnModel(configs);

    AggregationRowConfig<BeanModel> statistics = new AggregationRowConfig<BeanModel>();
    statistics.setHtml("containerNo", "统计");

    statistics.setSummaryType("size", SummaryType.COUNT);
    statistics.setRenderer(
        "size",
        new AggregationRenderer<BeanModel>() {
          public Object render(
              Number value, int colIndex, Grid<BeanModel> grid, ListStore<BeanModel> store) {
            return "集装箱" + ContainerTabItem.this.store.getCount() + "个";
          }
        });

    statistics.setSummaryType("valentNum", SummaryType.SUM);
    statistics.setRenderer(
        "valentNum",
        new AggregationRenderer<BeanModel>() {
          public Object render(
              Number value, int colIndex, Grid<BeanModel> grid, ListStore<BeanModel> store) {
            if (value == null) {
              return "";
            }
            return "标准箱" + value.intValue() + "个";
          }
        });
    cm.addAggregationRow(statistics);

    store.setMonitorChanges(true);
    Grid<BeanModel> grid = new Grid<BeanModel>(store, cm);
    grid.setView(
        new GridView() {
          @Override
          protected void afterRender() {
            refresh(true);
          }
        });
    grid.setBorders(true);

    return grid;
  }
コード例 #5
0
  @Override
  protected void onRender(Element parent, int index) {
    super.onRender(parent, index);

    setLayout(new FlowLayout(10));

    Folder model = TestData.getTreeModel();

    TreeStore<ModelData> store = new TreeStore<ModelData>();

    store.add(model.getChildren(), true);

    ColumnConfig name = new ColumnConfig("name", "Name", 100);
    name.setRenderer(new TreeGridCellRenderer<ModelData>());

    ColumnConfig date = new ColumnConfig("author", "Author", 100);

    ColumnConfig size = new ColumnConfig("genre", "Genre", 100);

    ColumnModel cm = new ColumnModel(Arrays.asList(name, date, size));

    ContentPanel cp = new ContentPanel();
    cp.setBodyBorder(false);
    cp.setHeading("TreeGrid");
    cp.setButtonAlign(HorizontalAlignment.CENTER);
    cp.setLayout(new FitLayout());
    cp.setFrame(true);
    cp.setSize(600, 300);

    TreeGrid<ModelData> tree = new TreeGrid<ModelData>(store, cm);
    tree.setBorders(true);
    tree.getStyle().setLeafIcon(Resources.ICONS.music());
    tree.setAutoExpandColumn("name");
    tree.setTrackMouseOver(false);

    cp.add(tree);

    add(cp);

    StoreFilterField<ModelData> filter =
        new StoreFilterField<ModelData>() {

          @Override
          protected boolean doSelect(
              Store<ModelData> store,
              ModelData parent,
              ModelData record,
              String property,
              String filter) {
            // only match leaf nodes
            if (record instanceof Folder) {
              return false;
            }
            String name = record.get("name");
            name = name.toLowerCase();
            if (name.startsWith(filter.toLowerCase())) {
              return true;
            }
            return false;
          }
        };
    filter.bind(store);

    ToolBar toolBar = new ToolBar();
    toolBar.setBorders(true);
    toolBar.add(new LabelToolItem("Filter:"));
    toolBar.add(filter);

    cp.setTopComponent(toolBar);
  }
コード例 #6
0
ファイル: MainGrid.java プロジェクト: BerengereG/contrib
  private ColumnModel createColumnModel() {
    ArrayList<ColumnConfig> columns = new ArrayList<ColumnConfig>();

    mainGridSelectionModel = new CheckBoxSelectionModel<ModelData>();
    mainGridSelectionModel.setSelectionMode(Style.SelectionMode.MULTI);
    columns.add(mainGridSelectionModel.getColumn());

    countryColumn = new ColumnConfig("country", HarvesterUI.ICONS.worldmap().getHTML(), 35);
    countryColumn.setAlignment(Style.HorizontalAlignment.CENTER);

    countryColumn.setRenderer(
        new GridCellRenderer<ModelData>() {
          public Object render(
              ModelData model,
              String property,
              ColumnData config,
              int rowIndex,
              int colIndex,
              ListStore<ModelData> store,
              Grid<ModelData> grid) {
            if (model instanceof DataProviderUI) {
              if (model.get("country") != null && !model.get("country").equals("none")) {
                return "<img src=\"resources/images/countries/"
                    + model.get("country")
                    + ".png\" alt=\""
                    + model.get("countryName")
                    + "\" title=\""
                    + model.get("countryName")
                    + "\"/> ";
              }
            }
            return "";
          }
        });
    columns.add(countryColumn);

    ColumnConfig name =
        new ColumnConfig("name", "<CENTER>" + HarvesterUI.CONSTANTS.name() + "</CENTER>", 100);
    name.setRenderer(new TreeGridCellRenderer<ModelData>());
    name.setWidth(260);
    columns.add(name);

    // Europeana column only
    if (HarvesterUI.getProjectType().equals("EUROPEANA")) {
      ColumnConfig nameCode =
          new ColumnConfig(
              "nameCode", "<CENTER>" + HarvesterUI.CONSTANTS.nameCodeHeader() + "</CENTER>", 100);
      columns.add(nameCode);
    }

    ColumnConfig dataSourceSet =
        new ColumnConfig(
            "dataSourceSet", "<CENTER>" + HarvesterUI.CONSTANTS.dataSetHeader() + "</CENTER>", 100);
    columns.add(dataSourceSet);

    ColumnConfig metadataFormat =
        new ColumnConfig(
            "metadataFormat",
            "<CENTER>" + HarvesterUI.CONSTANTS.oaiSchemasHeader() + "</CENTER>",
            100);
    metadataFormat.setWidth(110);
    columns.add(metadataFormat);

    ColumnConfig ingest =
        new ColumnConfig(
            "ingest", "<CENTER>" + HarvesterUI.CONSTANTS.ingestTypeHeader() + "</CENTER>", 150);
    ingest.setRenderer(new IngestTypeRenderer());
    columns.add(ingest);
    ColumnConfig lastIngest =
        new ColumnConfig(
            "lastIngest", "<CENTER>" + HarvesterUI.CONSTANTS.lastIngestHeader() + "</CENTER>", 100);
    lastIngest.setWidth(130);
    lastIngest.setAlignment(Style.HorizontalAlignment.CENTER);
    lastIngest.setRenderer(new LastIngestRenderer());
    columns.add(lastIngest);
    ColumnConfig nextIngest =
        new ColumnConfig(
            "nextIngest", "<CENTER>" + HarvesterUI.CONSTANTS.nextIngestHeader() + "</CENTER>", 100);
    nextIngest.setRenderer(new NextIngestRenderer());
    nextIngest.setAlignment(Style.HorizontalAlignment.CENTER);
    nextIngest.setWidth(130);
    columns.add(nextIngest);
    ColumnConfig records =
        new ColumnConfig(
            "records", "<CENTER>" + HarvesterUI.CONSTANTS.records() + "</CENTER>", 100);
    records.setAlignment(Style.HorizontalAlignment.RIGHT);
    records.setRenderer(new RecordsRenderer());
    columns.add(records);
    ColumnConfig ingestStatus =
        new ColumnConfig(
            "status", "<CENTER>" + HarvesterUI.CONSTANTS.ingestStatusHeader() + "</CENTER>", 100);
    ingestStatus.setRenderer(new IngestStatusRenderer());
    ingestStatus.setAlignment(Style.HorizontalAlignment.CENTER);
    columns.add(ingestStatus);

    return new ColumnModel(columns);
  }
コード例 #7
0
  /*
   * (non-Javadoc)
   *
   * @see it.geosolutions.geofence.gui.client.widget.GEOFENCEGridWidget#
   * prepareColumnModel()
   */
  @Override
  public ColumnModel prepareColumnModel() {
    List<ColumnConfig> configs = new ArrayList<ColumnConfig>();

    ColumnConfig rulePriorityColumn = new ColumnConfig();
    rulePriorityColumn.setId(BeanKeyValue.PRIORITY.getValue());
    rulePriorityColumn.setWidth(COLUMN_PRIORITY_WIDTH);
    rulePriorityColumn.setMenuDisabled(false);
    rulePriorityColumn.setSortable(true);
    configs.add(rulePriorityColumn);

    ColumnConfig ruleUserColumn = new ColumnConfig();
    ruleUserColumn.setId(BeanKeyValue.USER.getValue());
    ruleUserColumn.setHeader("User");
    ruleUserColumn.setWidth(COLUMN_USER_WIDTH);
    ruleUserColumn.setRenderer(new UserRenderer());
    ruleUserColumn.setMenuDisabled(true);
    ruleUserColumn.setSortable(false);
    configs.add(ruleUserColumn);

    ColumnConfig ruleProfileColumn = new ColumnConfig();
    ruleProfileColumn.setId(BeanKeyValue.PROFILE.getValue());
    ruleProfileColumn.setHeader("Group");
    ruleProfileColumn.setWidth(COLUMN_GROUP_WIDTH);
    ruleProfileColumn.setRenderer(new GroupRenderer());
    ruleProfileColumn.setMenuDisabled(true);
    ruleProfileColumn.setSortable(false);
    configs.add(ruleProfileColumn);

    ColumnConfig ruleInstanceColumn = new ColumnConfig();
    ruleInstanceColumn.setId(BeanKeyValue.INSTANCE.getValue());
    ruleInstanceColumn.setHeader("Instance");
    ruleInstanceColumn.setWidth(COLUMN_INSTANCE_WIDTH);
    ruleInstanceColumn.setRenderer(new InstanceRenderer());
    ruleInstanceColumn.setMenuDisabled(true);
    ruleInstanceColumn.setSortable(false);
    configs.add(ruleInstanceColumn);

    ColumnConfig ipcfg = new ColumnConfig();
    ipcfg.setId(BeanKeyValue.SOURCE_IP_RANGE.getValue());
    ipcfg.setHeader("Src IP addr");
    ipcfg.setWidth(COLUMN_IPRANGE_WIDTH);
    ipcfg.setRenderer(new IPRangeRenderer());
    ipcfg.setMenuDisabled(true);
    ipcfg.setSortable(false);
    configs.add(ipcfg);

    ColumnConfig ruleServiceColumn = new ColumnConfig();
    ruleServiceColumn.setId(BeanKeyValue.SERVICE.getValue());
    ruleServiceColumn.setHeader("Service");
    ruleServiceColumn.setWidth(COLUMN_SERVICE_WIDTH);
    ruleServiceColumn.setRenderer(new ServiceRenderer());
    ruleServiceColumn.setMenuDisabled(true);
    ruleServiceColumn.setSortable(false);
    configs.add(ruleServiceColumn);

    ColumnConfig ruleRequestColumn = new ColumnConfig();
    ruleRequestColumn.setId(BeanKeyValue.REQUEST.getValue());
    ruleRequestColumn.setHeader("Request");
    ruleRequestColumn.setWidth(COLUMN_REQUEST_WIDTH);
    ruleRequestColumn.setRenderer(new RequestRenderer());
    ruleRequestColumn.setMenuDisabled(true);
    ruleRequestColumn.setSortable(false);
    configs.add(ruleRequestColumn);

    ColumnConfig ruleWorkspacesColumn = new ColumnConfig();
    ruleWorkspacesColumn.setId(BeanKeyValue.WORKSPACE.getValue());
    ruleWorkspacesColumn.setHeader("Workspace");
    ruleWorkspacesColumn.setWidth(COLUMN_WORKSPACE_WIDTH);
    ruleWorkspacesColumn.setRenderer(new WorkspaceRenderer());
    ruleWorkspacesColumn.setMenuDisabled(true);
    ruleWorkspacesColumn.setSortable(false);
    configs.add(ruleWorkspacesColumn);

    ColumnConfig ruleLayersColumn = new ColumnConfig();
    ruleLayersColumn.setId(BeanKeyValue.LAYER.getValue());
    ruleLayersColumn.setHeader("Layer");
    ruleLayersColumn.setWidth(COLUMN_LAYER_WIDTH);
    ruleLayersColumn.setRenderer(new LayerRenderer());
    ruleLayersColumn.setMenuDisabled(true);
    ruleLayersColumn.setSortable(false);
    configs.add(ruleLayersColumn);

    ColumnConfig ruleGrantsColumn = new ColumnConfig();
    ruleGrantsColumn.setId(BeanKeyValue.GRANT.getValue());
    ruleGrantsColumn.setHeader("Grant");
    ruleGrantsColumn.setWidth(COLUMN_GRANT_WIDTH);
    ruleGrantsColumn.setRenderer(this.createGrantsCustomField());
    ruleGrantsColumn.setMenuDisabled(true);
    ruleGrantsColumn.setSortable(false);
    configs.add(ruleGrantsColumn);

    ColumnConfig editRuleColumn = new ColumnConfig();
    editRuleColumn.setId("editRuleDetails");
    editRuleColumn.setWidth(COLUMN_EDIT_RULE_WIDTH);
    editRuleColumn.setRenderer(this.editRuleButton());
    editRuleColumn.setMenuDisabled(true);
    editRuleColumn.setSortable(false);
    configs.add(editRuleColumn);

    ColumnConfig detailsActionColumn = new ColumnConfig();
    detailsActionColumn.setId("ruleDetails");
    detailsActionColumn.setWidth(COLUMN_RULE_DETAILS_WIDTH);
    detailsActionColumn.setRenderer(this.createRuleDetailsButton());
    detailsActionColumn.setMenuDisabled(true);
    detailsActionColumn.setSortable(false);
    configs.add(detailsActionColumn);

    ColumnConfig removeActionColumn = new ColumnConfig();
    removeActionColumn.setId("removeRule");
    removeActionColumn.setWidth(COLUMN_REMOVE_RULE_WIDTH);
    removeActionColumn.setRenderer(this.createRuleDeleteButton());
    removeActionColumn.setMenuDisabled(true);
    removeActionColumn.setSortable(false);
    configs.add(removeActionColumn);

    ColumnConfig addActionColumn = new ColumnConfig();
    addActionColumn.setId("addRule");
    addActionColumn.setWidth(COLUMN_ADD_RULE_WIDTH);
    addActionColumn.setRenderer(this.createRuleAddButton());
    addActionColumn.setMenuDisabled(true);
    addActionColumn.setSortable(false);
    configs.add(addActionColumn);

    ColumnConfig priorityUpActionColumn = new ColumnConfig();
    priorityUpActionColumn.setId("rulePriorityUp");
    priorityUpActionColumn.setWidth(COLUMN_UP_RULE_WIDTH);
    priorityUpActionColumn.setRenderer(this.createRulePriorityUpButton());
    priorityUpActionColumn.setMenuDisabled(true);
    priorityUpActionColumn.setSortable(false);
    configs.add(priorityUpActionColumn);

    ColumnConfig priorityDownActionColumn = new ColumnConfig();
    priorityDownActionColumn.setId("rulePriorityDwn");
    priorityDownActionColumn.setWidth(COLUMN_DOWN_RULE_WIDTH);
    priorityDownActionColumn.setRenderer(this.createRulePriorityDownButton());
    priorityDownActionColumn.setMenuDisabled(true);
    priorityDownActionColumn.setSortable(false);
    configs.add(priorityDownActionColumn);

    return new ColumnModel(configs);
  }
コード例 #8
0
  public ImportItemSetupPanel() {

    super();

    categoryStore = new ListStore<ItemModel>();

    setLayout(new FitLayout());

    // Grid: setup / configuration
    ArrayList<ColumnConfig> itemColumns = new ArrayList<ColumnConfig>();

    TextField<String> textField = new TextField<String>();
    textField.addInputStyleName(resources.css().gbTextFieldInput());
    CellEditor textCellEditor = new CellEditor(textField);

    setHeading(i18n.navigationPanelImportHeader());

    columnConfigName = new ColumnConfig(ItemKey.S_NM.name(), i18n.importSetupGridItemHeader(), 200);
    columnConfigName.setEditor(textCellEditor);
    itemColumns.add(columnConfigName);

    columnConfigPercentCategory =
        new ColumnConfig(
            ItemKey.D_PCT_CTGRY.name(), i18n.importSetupGridCategoryPercentHeader(), 100);
    columnConfigPercentCategory.setEditor(new CellEditor(new NumberField()));
    itemColumns.add(columnConfigPercentCategory);

    columnConfigPoints =
        new ColumnConfig(ItemKey.D_PNTS.name(), i18n.importSetupGridPointsHeader(), 100);
    columnConfigPoints.setEditor(new CellEditor(new NumberField()));
    itemColumns.add(columnConfigPoints);

    categoryComboBox = new ComboBox<ItemModel>();
    categoryComboBox.setDisplayField(ItemKey.S_NM.name());
    categoryComboBox.setEditable(true);
    categoryComboBox.setTriggerAction(TriggerAction.ALL);
    categoryComboBox.setForceSelection(true);
    categoryComboBox.setStore(categoryStore);
    categoryComboBox.addInputStyleName(resources.css().gbTextFieldInput());

    columnConfigCategory =
        new ColumnConfig(ItemKey.S_ID.name(), i18n.importSetupGridCategoryHeader(), 140);

    categoryCellEditor =
        new CellEditor(categoryComboBox) {

          // Called before the editor sets the value on the wrapped field
          @Override
          public Object preProcessValue(Object value) {

            // Method argument is the selected grid item model id
            String assignmentId = (String) value;

            // Get the assignment and the associated category name
            ItemModel assignment = itemStore.findModel(ItemKey.S_ID.name(), assignmentId);
            String categoryName = assignment.get(ItemKey.S_PARENT.name());

            // Find the category from the category name
            ItemModel category = categoryStore.findModel(ItemKey.S_NM.name(), categoryName);

            // Mark the assignment as the one the user is performing an action on.
            // We will use the marker in the postProcessValue() method to find the assignment,
            // since the assignment is not readily available in that method.
            assignment.set(ItemKey.S_CTGRY_ID.name(), ITEM_MARKER);

            // FIXME:
            // Returning the category. Interestingly, I am not quite sure what the returned
            // object is used for. Testing this with returning null didn't change anything.
            // Following GXT sample code ??
            return category;
          }

          // Called after the editor completes an edit.
          @Override
          public Object postProcessValue(Object value) {

            // Method argument is the selected category model
            ItemModel category = (ItemModel) value;

            // Get the categoryId
            String categoryId = category.get(ItemKey.S_ID.name());

            // We search through all the assignments to find the one that has been marked
            // by the preProcessValue() method
            List<ItemModel> assignments = itemStore.getModels();

            for (ItemModel assignment : assignments) {

              if (ITEM_MARKER.equals(assignment.get(ItemKey.S_CTGRY_ID.name()))) {

                // We have found the marked assignment and are setting the string based categoryId
                // Also, this string based category is used on the server side to reassociate the
                // assignment with the correct category before things are persisted and updated
                assignment.set(ItemKey.S_CTGRY_ID.name(), categoryId);

                // Returning the assignmentId but prefix it so that the renderer thinks
                // that something changes. If we were to just return the assignmentId,
                // the renderer is not called. This also sets the assignmentId to this new
                // prefixed ID. This is fixed in the renderer code.
                return ITEM_PREFIX + assignment.get(ItemKey.S_ID.name());
              }
            }

            // In case we didn't find a marked assignment, we return null
            return null;
          }
        };

    columnConfigCategory.setEditor(categoryCellEditor);

    columnConfigCategory.setRenderer(
        new GridCellRenderer<ItemModel>() {

          public String render(
              ItemModel model,
              String property,
              ColumnData config,
              int rowIndex,
              int colIndex,
              ListStore<ItemModel> store,
              Grid<ItemModel> grid) {

            // Method argument "model" is the selected grid item model
            String categoryId = model.get(ItemKey.S_CTGRY_ID.name());

            // Case when we render the grid for the first time
            if (null == categoryId || "".equals(categoryId)) {

              // Making sure that assignments have the categoryId
              // set if possible
              if (model.getCategoryId().equals(Long.valueOf(-1l))) {

                String categoryName = model.get(ItemKey.S_PARENT.name());
                if (null != categoryName && !"".equals(categoryName)) {

                  Item category = categoryStore.findModel(ItemKey.S_NM.name(), categoryName);
                  // GRBK-681 - Since we don't care if the category id is non numeric, I assume we
                  // don't care if there's no category at all.

                  if (category != null) {
                    try {

                      Long catId = Long.valueOf((String) category.get(ItemKey.S_ID.name()));
                      model.setCategoryId(catId);
                    } catch (NumberFormatException nfe) {
                      // We don't do anything
                    }
                  }
                }
              }

              return model.get(ItemKey.S_PARENT.name());
            } else { // Case where a user selects a different category from the ComboBox

              // First we "restore" the itemId since we prefixed it in the postProcessValue() method
              String assignmentId = model.get(ItemKey.S_ID.name());

              if (assignmentId.startsWith(ITEM_PREFIX)) {

                String fixedAssignmentId = assignmentId.substring(ITEM_PREFIX.length());
                model.set(ItemKey.S_ID.name(), fixedAssignmentId);
              }

              ItemModel category = categoryStore.findModel(ItemKey.S_ID.name(), categoryId);
              // GRBK-681
              if (category != null) {
                String categoryName = category.get(ItemKey.S_NM.name());
                model.set(ItemKey.S_PARENT.name(), categoryName);

                return categoryName;
              } else {
                return "";
              }
            }
          }
        });

    itemColumns.add(columnConfigCategory);

    ColumnModel itemColumnModel = new ColumnModel(itemColumns);
    itemStore = new ListStore<ItemModel>();

    itemGrid = new EditorGrid<ItemModel>(itemStore, itemColumnModel);
    itemGrid.setBorders(true);

    // TODO: In the old upload code, we used the BaseCustomGridView() instead of the GridView()
    // I am not sure yet if this is still needed. Maybe for some CSS adjustments?
    itemGrid.setView(new GridView());

    add(itemGrid);
  }
コード例 #9
0
ファイル: UsersManagement.java プロジェクト: abremar/portal3
  /** Creates and configures the users grid.<br> */
  private void addGrid() {

    // renderer for active column
    GridCellRenderer<PortalUserSelModelData> activeRenderer =
        new GridCellRenderer<PortalUserSelModelData>() {
          public String render(
              PortalUserSelModelData model,
              String property,
              ColumnData config,
              int rowIndex,
              int colIndex,
              ListStore<PortalUserSelModelData> s) {
            String checked = "";
            if (model.getDTO().isActive()) {
              checked = "checked='checked'";
            }
            return "<input type='checkbox' disabled='disabled' " + checked + " />";
          }
        };

    List<ColumnConfig> configs = new LinkedList<ColumnConfig>();

    ColumnConfig ccName = new ColumnConfig();
    ccName.setId(PortalUserSelModelData.PROPERTY_NAME);
    ccName.setWidth(COLUMN_NAME_WIDTH);
    ccName.setHeader(COLUMN_NAME_HEADER);
    configs.add(ccName);

    ColumnConfig ccDisplay = new ColumnConfig();
    ccDisplay.setId(PortalUserSelModelData.PROPERTY_DISPLAY_NAME);
    ccDisplay.setWidth(COLUMN_DISPLAY_NAME_WIDTH);
    ccDisplay.setHeader(COLUMN_DISPLAY_NAME_HEADER);
    configs.add(ccDisplay);

    ColumnConfig ccActive = new ColumnConfig();
    ccActive.setId(PortalUserSelModelData.PROPERTY_ACTIVE);
    ccActive.setWidth(COLUMN_ACTIVE_WIDTH);
    ccActive.setHeader(COLUMN_ACTIVE_HEADER);
    ccActive.setRenderer(activeRenderer);
    ccActive.setAlignment(HorizontalAlignment.CENTER);
    configs.add(ccActive);

    ColumnModel cm = new ColumnModel(configs);

    store = new ListStore<PortalUserSelModelData>();

    grid = new Grid<PortalUserSelModelData>(store, cm);
    grid.setAutoExpandColumn(PortalUserSelModelData.PROPERTY_NAME);
    grid.setSelectionModel(new GridSelectionModel<PortalUserSelModelData>());
    grid.getSelectionModel().setSelectionMode(SelectionMode.SINGLE);
    grid.addListener(
        Events.RowClick,
        new Listener<GridEvent>() {
          public void handleEvent(GridEvent ge) {
            if (grid.getSelectionModel().getSelectedItem() != null) {
              enableButtons(true);
            }
          }
        });
    grid.getView().setForceFit(true);

    add(grid);
  }
コード例 #10
0
  /** Creates the gComponents with the list of components and add it to the panel */
  private void addGrid() {

    List<ColumnConfig> configs = new LinkedList<ColumnConfig>();

    CheckBoxSelectionModel<PaletteModelData> selectionModel =
        new CheckBoxSelectionModel<PaletteModelData>();
    configs.add(selectionModel.getColumn());

    ColumnConfig column = new ColumnConfig();
    column.setId(PaletteModelData.PROPERTY_NAME);
    column.setHeader(pmsMessages.columnHeaderName());
    column.setWidth(COLUMN_NAME_WIDTH);
    // render to show a tooltip
    column.setRenderer(
        new GridCellRenderer<PaletteModelData>() {
          public Object render(
              PaletteModelData model,
              String property,
              ColumnData config,
              int rowIndex,
              int colIndex,
              ListStore<PaletteModelData> store,
              Grid<PaletteModelData> grid) {
            String name = (String) model.get(property);
            Html html = new Html((String) model.get(property));
            html.setToolTip(name);
            html.getToolTip().setAutoWidth(true);
            return html;
          }
        });
    configs.add(column);

    column = new ColumnConfig();
    column.setId(PaletteModelData.PROPERTY_DESCRIPTION);
    column.setHeader(pmsMessages.columnHeaderDescription());
    column.setWidth(COLUMN_DESCRIPTION_WIDTH);
    configs.add(column);

    ColumnModel cm = new ColumnModel(configs);

    sGrid = new ListStore<PaletteModelData>();
    sGrid.setStoreSorter((StoreSorter) storeSorter);
    sGrid.setSortField(PaletteModelData.PROPERTY_NAME);

    gComponents = new Grid<PaletteModelData>(sGrid, cm);

    gComponents.setSelectionModel(selectionModel);
    gComponents.addPlugin(selectionModel);

    gComponents.setAutoExpandColumn(PaletteModelData.PROPERTY_DESCRIPTION);
    gComponents.setLoadMask(true);
    gComponents.getView().setForceFit(true);

    gComponents
        .getSelectionModel()
        .addSelectionChangedListener(
            new SelectionChangedListener<PaletteModelData>() {
              @Override
              public void selectionChanged(SelectionChangedEvent<PaletteModelData> se) {
                if (se.getSelection() != null && !se.getSelection().isEmpty()) {
                  ttiAddSelected.enable();
                } else {
                  ttiAddSelected.disable();
                }
              }
            });

    add(gComponents);
  }
コード例 #11
0
  private void createGrid(boolean widget) {
    List<ColumnConfig> configs = new ArrayList<ColumnConfig>();

    ColumnConfig column = new ColumnConfig();
    column.setId("name");
    column.setHeader("Company");
    column.setWidth(200);
    configs.add(column);

    column = new ColumnConfig();
    column.setId("symbol");
    column.setHeader("Symbol");
    column.setWidth(100);
    configs.add(column);

    column = new ColumnConfig();
    column.setId("last");
    column.setHeader("Last");
    column.setAlignment(HorizontalAlignment.RIGHT);
    column.setWidth(75);
    column.setRenderer(gridNumber);
    configs.add(column);

    column = new ColumnConfig("change", "Change", 100);
    column.setAlignment(HorizontalAlignment.RIGHT);
    column.setRenderer(change);
    configs.add(column);

    column = new ColumnConfig("date", 125);
    if (widget) {
      Button btn = new Button("Updated");
      btn.addListener(
          Events.OnClick,
          new Listener<ButtonEvent>() {
            public void handleEvent(ButtonEvent be) {
              // stop column from getting click and causing sort
              be.cancelBubble();
            }
          });
      btn.setStyleAttribute("float", "left");
      column.setWidget(btn, "Last Updated");
    } else {
      column.setAlignment(HorizontalAlignment.RIGHT);
      column.setHeader("Last Updated");
    }

    column.setDateTimeFormat(DateTimeFormat.getFormat("MM/dd/yyyy"));
    configs.add(column);

    ListStore<Stock> store = new ListStore<Stock>();
    store.add(TestData.getStocks());

    ColumnModel cm = new ColumnModel(configs);

    cm.addHeaderGroup(0, 0, new HeaderGroupConfig("Header Grouping Example", 1, 5));
    cm.addHeaderGroup(1, 2, new HeaderGroupConfig("Stock Performance", 1, 2));

    if (widget) {
      Slider s = new Slider();
      s.setWidth(100);

      // ugly, but centers slider
      FlexTable tbl = new FlexTable();
      tbl.setWidth("100%");
      tbl.setHTML(0, 0, "&nbsp;");
      tbl.setHTML(
          0, 1, "<span style='white-space: nowrap;font-size: 11px'>Slide Me: &nbsp;</span>");
      tbl.setWidget(0, 2, s);
      tbl.setHTML(0, 3, "&nbsp;");
      tbl.getCellFormatter().setWidth(0, 0, "50%");
      tbl.getCellFormatter().setWidth(0, 3, "50%");
      cm.addHeaderGroup(1, 0, new HeaderGroupConfig(tbl, 1, 2));
    } else {
      cm.addHeaderGroup(1, 0, new HeaderGroupConfig("Stock Information", 1, 2));
    }

    ContentPanel cp = new ContentPanel();
    cp.setBodyBorder(false);
    cp.setIcon(Resources.ICONS.table());
    cp.setHeading(widget ? "Column Grouping with Widget" : "Column Grouping");
    cp.setButtonAlign(HorizontalAlignment.CENTER);
    cp.setLayout(new FitLayout());
    cp.setSize(600, 300);

    Grid<Stock> grid = new Grid<Stock>(store, cm);
    grid.setStyleAttribute("borderTop", "none");
    grid.getView().setForceFit(true);
    grid.setBorders(true);
    cp.add(grid);

    vp.add(cp);
  }
コード例 #12
0
  protected void onRender(Element parent, int index) {
    super.onRender(parent, index);

    criteria.addCondition(new Condition(IGoods.DELETED, Condition.EQUALS, "true"));
    BasePagingLoader loader = new PagingListService().getLoader(ModelNames.GOODS, criteria);
    loader.load(0, 10);
    final ListStore<BeanObject> store = new ListStore<BeanObject>(loader);

    toolBar = new PagingToolBar(10);
    toolBar.bind(loader);

    List<ColumnConfig> columns = new ArrayList<ColumnConfig>();
    final CheckBoxSelectionModel<BeanObject> smRowSelection =
        new CheckBoxSelectionModel<BeanObject>();
    columns.add(smRowSelection.getColumn());
    columns.add(new ColumnConfig(IGoods.ID, "ID", 50));
    ColumnConfig col = new ColumnConfig(IGoods.NAME, Resources.constants.Goods_name(), 100);
    columns.add(col);
    col = new ColumnConfig(IGoods.SN, Resources.constants.Goods_SN(), 100);
    columns.add(col);

    col = new ColumnConfig(IGoods.SHOPPRICE, Resources.constants.Goods_shopPrice(), 80);
    col.setAlignment(HorizontalAlignment.RIGHT);
    col.setNumberFormat(NumberFormat.getCurrencyFormat());
    columns.add(col);

    ColumnConfig actcol = new ColumnConfig("Action", Resources.constants.GoodsList_action(), 100);
    //		columns.add(actcol);

    ColumnModel cm = new ColumnModel(columns);

    Grid<BeanObject> grid = new EditorGrid<BeanObject>(store, cm);
    grid.setLoadMask(true);
    grid.setBorders(true);
    grid.setSelectionModel(smRowSelection);
    //      grid.setAutoExpandColumn("forum");

    ActionCellRenderer render = new ActionCellRenderer(grid);
    ActionCellRenderer.ActionInfo act = new ActionCellRenderer.ActionInfo();
    act.setImage("icon_edit.gif");
    act.setAction("editGoods($id)");
    act.setTooltip(Resources.constants.GoodsList_action_edit());
    render.addAction(act);
    act = new ActionCellRenderer.ActionInfo();
    act.setImage("icon_trash.gif");
    act.setAction("deleteGoods($id)");
    act.setTooltip(Resources.constants.GoodsList_action_delete());
    render.addAction(act);

    actcol.setRenderer(render);

    HorizontalPanel header = new HorizontalPanel();
    header.add(Resources.images.icon_search().createImage());
    header.add(new Label("  " + Resources.constants.GoodsList_keyword()));
    header.add(txtKeyword);
    header.add(btnFind);
    add(header);

    btnFind.addSelectionListener(
        new SelectionListener<ButtonEvent>() {
          public void componentSelected(ButtonEvent ce) {
            search();
          }
        });

    ContentPanel panel = new ContentPanel();
    panel.setFrame(true);
    panel.setCollapsible(true);
    panel.setAnimCollapse(false);
    panel.setButtonAlign(HorizontalAlignment.CENTER);
    panel.setIconStyle("icon-table");
    //        panel.setHeading("Paging Grid");
    panel.setLayout(new FitLayout());
    panel.add(grid);
    panel.setSize(880, 350);
    panel.setBottomComponent(toolBar);

    panel.setButtonAlign(HorizontalAlignment.CENTER);
    panel.addButton(
        new Button(
            "彻底删除",
            new SelectionListener<ButtonEvent>() {
              public void componentSelected(ButtonEvent ce) {
                List<BeanObject> items = smRowSelection.getSelectedItems();
                purgeGoods(items);
              }
            }));

    panel.addButton(
        new Button(
            "恢复",
            new SelectionListener<ButtonEvent>() {
              public void componentSelected(ButtonEvent ce) {
                List<BeanObject> items = smRowSelection.getSelectedItems();
                restoreGoods(items);
              }
            }));

    add(panel);
  }
コード例 #13
0
  /** 初始化界面。 */
  public MagazineManager() {
    curState = new State();

    BasePagingLoader loader = new PagingListService().getLoader(ModelNames.MAILTEMPLATE, criteria);
    loader.load(0, 10);
    store = new ListStore<BeanObject>(loader);
    toolBar = new PagingToolBar(10);
    toolBar.bind(loader);

    List<ColumnConfig> columns = new ArrayList<ColumnConfig>();
    ColumnConfig title = new ColumnConfig(IMailTemplate.SUBJECT, "杂志标题", 200);
    columns.add(title);
    columns.add(new ColumnConfig(IMailTemplate.LASTMODIFY, "杂志上次编辑时间", 160));
    columns.add(new ColumnConfig(IMailTemplate.LASTSEND, "杂志上次发送时间", 160));
    ColumnConfig insert = new ColumnConfig("insert", "插入发送队列", 160);
    columns.add(insert);
    ColumnConfig actcol = new ColumnConfig("Action", "操作", 100);
    columns.add(actcol);
    ColumnModel cm = new ColumnModel(columns);

    grid = new Grid<BeanObject>(store, cm);
    grid.setLoadMask(true);
    grid.setBorders(true);

    ActionCellRenderer render = new ActionCellRenderer(grid);
    ActionCellRenderer insertRender = new ActionCellRenderer(grid);
    ActionCellRenderer.ActionInfo act = new ActionCellRenderer.ActionInfo();
    act.setImage("icon_edit.gif");
    act.setAction("editMagazine($id)");
    act.setTooltip("编辑");
    render.addAction(act);
    act = new ActionCellRenderer.ActionInfo();
    act.setImage("icon_trash.gif");
    act.setAction("deleteMagazine($id)");
    act.setTooltip("删除");
    render.addAction(act);
    act = new ActionCellRenderer.ActionInfo();
    act.setText("插入队列");
    act.setAction("insertMagazine($id)");
    act.setTooltip("插入队列");
    insertRender.addAction(act);

    actcol.setRenderer(render);
    insert.setRenderer(insertRender);

    ContentPanel panel = new ContentPanel();
    panel.setFrame(true);
    panel.setCollapsible(true);
    panel.setAnimCollapse(false);
    panel.setButtonAlign(HorizontalAlignment.CENTER);
    panel.setIconStyle("icon-table");
    panel.setLayout(new FitLayout());
    panel.add(grid);
    panel.setSize(850, 350);
    panel.setBottomComponent(toolBar);
    panel.setHeading("邮件杂志列表");
    panel.setButtonAlign(HorizontalAlignment.LEFT);

    // 添加新杂志
    final com.extjs.gxt.ui.client.widget.button.Button addMagazine =
        new com.extjs.gxt.ui.client.widget.button.Button("添加新杂志");
    addMagazine.addSelectionListener(
        new SelectionListener<ButtonEvent>() {
          public void componentSelected(ButtonEvent ce) {
            // add new magazine function
            NewMagazine.State state = new NewMagazine.State();
            state.execute();
          }
        });
    panel.addButton(addMagazine);

    add(panel);
    initJS(this);
  }
コード例 #14
0
ファイル: Smape.java プロジェクト: rabbbit/mock-up-with-GWT
  private Window createGridWindow() {
    Window w = new Window();
    w.setIcon(IconHelper.createStyle("icon-grid"));
    w.setMinimizable(true);
    w.setMaximizable(true);
    w.setHeading("Messages Window");
    w.setSize(500, 400);
    w.setLayout(new FitLayout());

    GroupingStore<Employee> employeeList = new GroupingStore<Employee>();
    employeeList.add(TestData.getEmployees());
    employeeList.groupBy("department");

    List<ColumnConfig> configs = new ArrayList<ColumnConfig>();

    ColumnConfig column = new ColumnConfig();
    column.setId("name");
    column.setHeader("Sender Name");
    column.setWidth(200);
    configs.add(column);

    column = new ColumnConfig("department", "User group", 150);
    column.setAlignment(HorizontalAlignment.LEFT);
    configs.add(column);

    column = new ColumnConfig("designation", "Taggs", 150);
    column.setAlignment(HorizontalAlignment.LEFT);
    configs.add(column);

    column = new ColumnConfig("salary", "Length", 100);
    column.setAlignment(HorizontalAlignment.RIGHT);
    final NumberFormat number = NumberFormat.getFormat("0.00");
    GridCellRenderer<Employee> checkSalary =
        new GridCellRenderer<Employee>() {
          public String render(
              Employee model,
              String property,
              ColumnData config,
              int rowIndex,
              int colIndex,
              ListStore<Employee> employeeList,
              Grid<Employee> grid) {
            double val = (Double) model.get(property);
            String style = val < 70000 ? "red" : "green";
            return "<span style='color:" + style + "'>" + number.format(val) + "</span>";
          }
        };
    column.setRenderer(checkSalary);
    configs.add(column);

    column = new ColumnConfig("joiningdate", "Date", 100);
    column.setAlignment(HorizontalAlignment.RIGHT);
    column.setDateTimeFormat(DateTimeFormat.getShortDateFormat());
    configs.add(column);

    final ColumnModel cm = new ColumnModel(configs);

    GroupingView view = new GroupingView();
    view.setForceFit(true);
    view.setGroupRenderer(
        new GridGroupRenderer() {
          public String render(GroupColumnData data) {
            String f = cm.getColumnById(data.field).getHeader();
            String l = data.models.size() == 1 ? "Item" : "Items";
            return f + ": " + data.group + " (" + data.models.size() + " " + l + ")";
          }
        });

    Grid<Employee> grid = new Grid<Employee>(employeeList, cm);
    grid.setView(view);
    grid.setBorders(true);

    ContentPanel cp = new ContentPanel();
    cp.setBodyBorder(false);
    cp.setHeading("Friends List");
    cp.setButtonAlign(HorizontalAlignment.CENTER);
    cp.setLayout(new FitLayout());
    cp.setSize(700, 420);
    cp.add(grid);
    w.add(cp);

    return w;
  }
コード例 #15
0
  /**
   * Creates and configure the column model for the grid contained in this component.
   *
   * @param enabled <code>true</code> to enable the delete column, <code>false</code> to disable it.
   * @return A new array of column configs.
   */
  private ColumnConfig[] createColumnModel(final boolean enabled) {
    final boolean canRemove = enabled && userCanPerformChangeType(ValueEventChangeType.REMOVE);

    // Creating columns
    final ColumnConfig lastEditDateColumn =
        new ColumnConfig("lastEditDate", I18N.CONSTANTS.reportLastEditDate(), 60);
    final ColumnConfig nameColumn = new ColumnConfig("name", I18N.CONSTANTS.reportName(), 100);
    final ColumnConfig editorNameColumn =
        new ColumnConfig("editorName", I18N.CONSTANTS.reportEditor(), 100);
    final ColumnConfig deleteColumn = new ColumnConfig("delete", "", 10);

    // Date column specificities
    lastEditDateColumn.setDateTimeFormat(DateUtils.DATE_SHORT);

    // Name column specificities
    nameColumn.setRenderer(
        new GridCellRenderer<ReportReference>() {

          @Override
          public Object render(
              final ReportReference model,
              String property,
              ColumnData config,
              int rowIndex,
              int colIndex,
              ListStore store,
              Grid grid) {
            final Anchor anchor = new Anchor((String) model.get(property));
            anchor.addStyleName("flexibility-link");
            anchor.addClickHandler(
                new ClickHandler() {

                  @Override
                  public void onClick(ClickEvent event) {
                    eventBus.navigateRequest(createPageRequest(model.getId()));
                  }
                });
            return anchor;
          }
        });

    // Delete column specificities
    deleteColumn.setSortable(false);
    deleteColumn.setRenderer(
        new GridCellRenderer<ReportReference>() {

          @Override
          public Object render(
              final ReportReference model,
              String property,
              ColumnData config,
              int rowIndex,
              int colIndex,
              final ListStore store,
              Grid grid) {
            if (!canRemove) {
              return "-";
            }

            final Image image = IconImageBundle.ICONS.remove().createImage();
            image.setTitle(I18N.CONSTANTS.remove());
            image.addStyleName("flexibility-action");

            // Action
            image.addClickHandler(
                new ClickHandler() {

                  @Override
                  public void onClick(ClickEvent event) {
                    N10N.confirmation(
                        I18N.CONSTANTS.remove(),
                        I18N.MESSAGES.reportRemoveConfirm(model.getName()),
                        new ConfirmCallback() {

                          @Override
                          public void onAction() {
                            // TODO: Delete the report
                            if (Log.isDebugEnabled()) {
                              Log.debug("Removing '" + model.getName() + "' report...");
                            }

                            dispatch.execute(
                                new Delete(ProjectReportDTO.ENTITY_NAME, model.getId()),
                                new CommandResultHandler<VoidResult>() {

                                  @Override
                                  public void onCommandSuccess(final VoidResult result) {
                                    store.remove(model);
                                    N10N.validNotif("OK", "OK");
                                  }

                                  @Override
                                  public void onCommandFailure(final Throwable caught) {
                                    N10N.warn("ERROR", "ERROR");
                                  }
                                });
                          }
                        });
                  }
                });

            return image;
          }
        });

    return new ColumnConfig[] {lastEditDateColumn, nameColumn, editorNameColumn, deleteColumn};
  }
コード例 #16
0
  @Override
  public Grid<ModelData> initGrid(ListStore<ModelData> store) {
    List<ColumnConfig> columns = new ArrayList<ColumnConfig>();

    ColumnConfig referenceColumn = configColumn(ProjectBeanDesc.reference, 100);
    referenceColumn.setRenderer(
        new GridCellRenderer<ModelData>() {

          public Object render(
              ModelData model,
              String property,
              ColumnData config,
              int rowIndex,
              int colIndex,
              ListStore<ModelData> store,
              Grid<ModelData> grid) {
            boolean reference = (Boolean) model.get(property);

            Image image = new Image(Icons.INSTANCE.star());

            return reference ? image : "";
          }
        });
    columns.add(referenceColumn);
    columns.add(configColumn(ProjectBeanDesc.label, 100));
    columns.add(configColumn(ProjectBeanDesc.description, 100));
    ColumnConfig createDateColumn = configColumn(ProjectBeanDesc.creationDate, 120);
    createDateColumn.setDateTimeFormat(DateTimeFormat.getFormat("yyyy-MM-dd HH:mm:ss"));
    columns.add(createDateColumn);
    ColumnConfig activeColumn = configColumn(ProjectBeanDesc.active, 100);
    activeColumn.setAlignment(HorizontalAlignment.CENTER);
    CheckBoxImageRender.getInstance().render(activeColumn);
    columns.add(activeColumn);
    ColumnConfig projectTypeColumn = configColumn(ProjectBeanDesc.projectType, 60);
    projectTypeColumn.setAlignment(HorizontalAlignment.CENTER);
    projectTypeColumn.setRenderer(
        new GridCellRenderer<ModelData>() {

          public Object render(
              ModelData model,
              String property,
              ColumnData config,
              int rowIndex,
              int colIndex,
              ListStore<ModelData> store,
              Grid<ModelData> grid) {
            Type type = Type.valueOf((String) model.get(property));
            return TypeDecorator.decorate(type);
          }
        });
    columns.add(projectTypeColumn);
    columns.add(configColumn(ProjectBeanDesc.url, 100));

    ColumnConfig warningColumn = configColumn(ProjectBeanDesc.warning, 100);
    warningColumn.setRenderer(new WarningInfoRenderer());
    columns.add(warningColumn);

    ColumnModel cm = new ColumnModel(columns);

    Grid<ModelData> grid = new Grid<ModelData>(store, cm);
    grid.setAutoExpandColumn(ProjectBeanDesc.label.getName());
    grid.getSelectionModel().setSelectionMode(SelectionMode.SINGLE);

    return grid;
  }
コード例 #17
0
  @Override
  protected void onRender(Element parent, int index) {
    super.onRender(parent, index);
    setLayout(new FlowLayout(10));

    GridCellRenderer<Stock> buttonRenderer =
        new GridCellRenderer<Stock>() {

          private boolean init;

          public Object render(
              final Stock model,
              String property,
              ColumnData config,
              final int rowIndex,
              final int colIndex,
              ListStore<Stock> store,
              Grid<Stock> grid) {
            if (!init) {
              init = true;
              grid.addListener(
                  Events.ColumnResize,
                  new Listener<GridEvent<Stock>>() {

                    public void handleEvent(GridEvent<Stock> be) {
                      for (int i = 0; i < be.getGrid().getStore().getCount(); i++) {
                        if (be.getGrid().getView().getWidget(i, be.getColIndex()) != null
                            && be.getGrid().getView().getWidget(i, be.getColIndex())
                                instanceof BoxComponent) {
                          ((BoxComponent) be.getGrid().getView().getWidget(i, be.getColIndex()))
                              .setWidth(be.getWidth() - 10);
                        }
                      }
                    }
                  });
            }

            Button b =
                new Button(
                    (String) model.get(property),
                    new SelectionListener<ButtonEvent>() {
                      @Override
                      public void componentSelected(ButtonEvent ce) {
                        Info.display(
                            model.getName(), "<ul><li>" + model.getSymbol() + "</li></ul>");
                      }
                    });
            b.setWidth(grid.getColumnModel().getColumnWidth(colIndex) - 10);
            b.setToolTip("Click for more information");

            return b;
          }
        };

    final NumberFormat currency = NumberFormat.getCurrencyFormat();
    final NumberFormat number = NumberFormat.getFormat("0.00");

    GridCellRenderer<Stock> change =
        new GridCellRenderer<Stock>() {
          public String render(
              Stock model,
              String property,
              ColumnData config,
              int rowIndex,
              int colIndex,
              ListStore<Stock> store,
              Grid<Stock> grid) {
            double val = (Double) model.get(property);
            String style = val < 0 ? "red" : "green";
            return "<span style='color:" + style + "'>" + number.format(val) + "</span>";
          }
        };

    GridCellRenderer<Stock> gridNumber =
        new GridCellRenderer<Stock>() {
          public String render(
              Stock model,
              String property,
              ColumnData config,
              int rowIndex,
              int colIndex,
              ListStore<Stock> stor,
              Grid<Stock> grid) {
            Number value = model.<Number>get(property);
            return value == null ? null : currency.format(model.<Number>get(property));
          }
        };

    List<ColumnConfig> configs = new ArrayList<ColumnConfig>();

    ColumnConfig column = new ColumnConfig();
    column.setId("name");
    column.setHeaderHtml("Company");
    column.setWidth(200);
    configs.add(column);

    column = new ColumnConfig();
    column.setId("symbol");
    column.setHeaderHtml("Symbol");
    column.setWidth(100);
    column.setRenderer(buttonRenderer);
    configs.add(column);

    column = new ColumnConfig();
    column.setId("last");
    column.setHeaderHtml("Last");
    column.setAlignment(HorizontalAlignment.RIGHT);
    column.setWidth(75);
    column.setRenderer(gridNumber);
    configs.add(column);

    column = new ColumnConfig("change", "Change", 100);
    column.setAlignment(HorizontalAlignment.RIGHT);
    column.setRenderer(change);
    configs.add(column);

    column = new ColumnConfig("date", "Last Updated", 100);
    column.setAlignment(HorizontalAlignment.RIGHT);
    column.setDateTimeFormat(DateTimeFormat.getFormat("MM/dd/yyyy"));
    configs.add(column);

    final ListStore<Stock> store = new ListStore<Stock>();
    store.add(Stock.getStocks());

    ColumnModel cm = new ColumnModel(configs);

    ContentPanel cp = new ContentPanel();
    cp.setBodyBorder(false);
    //    cp.setIconStyle("icon-printer");
    cp.setIcon(
        AbstractImagePrototype.create(
            new ImageResource() {
              public int getHeight() {
                return 0;
              }

              public int getLeft() {
                return 0;
              }

              public SafeUri getSafeUri() {
                return null;
              }

              public int getTop() {
                return 0;
              }

              public String getURL() {
                return "resources/images/fam/printer.png";
              }

              public int getWidth() {
                return 0;
              }

              public boolean isAnimated() {
                return false;
              }

              public String getName() {
                return null;
              }
            }));
    //    cp.setIcon(Resources.ICONS.table());
    cp.setHeadingHtml("Widget Renderer Grid");
    cp.setButtonAlign(HorizontalAlignment.CENTER);
    cp.setLayout(new FitLayout());
    cp.setSize(600, 300);

    Grid<Stock> grid = new Grid<Stock>(store, cm);
    grid.setStyleAttribute("borderTop", "none");
    grid.setAutoExpandColumn("name");
    grid.setBorders(true);
    cp.add(grid);

    add(cp);
  }
コード例 #18
0
  @Override
  public Grid<ModelData> initGrid(ListStore<ModelData> store) {
    List<ColumnConfig> columns = new ArrayList<ColumnConfig>();
    columns.add(configColumn(AdminUserBeanDesc.login, 380));
    ColumnConfig roleColumn = configColumn(AdminUserBeanDesc.role, 400);
    roleColumn.setRenderer(
        new GridCellRenderer<ModelData>() {

          public Object render(
              ModelData model,
              String property,
              com.extjs.gxt.ui.client.widget.grid.ColumnData config,
              int rowIndex,
              int colIndex,
              ListStore<ModelData> store,
              Grid<ModelData> grid) {
            Object obj = model.get(AdminUserBeanDesc.role.getName());

            String label = "";

            try {
              label = (String) ((BeanModel) obj).get("label");
            } catch (Exception e) {
              log.log(
                  java.util.logging.Level.INFO,
                  "can't cast obj:"
                      + obj
                      + "|class:"
                      + (null != obj ? obj.getClass() : "null")
                      + "|to RoleBean");
            }

            return getSortedGroupLabel(label);
          }
        });
    columns.add(roleColumn);
    columns.add(configColumn(AdminUserBeanDesc.lastName, 110));
    columns.add(configColumn(AdminUserBeanDesc.firstName, 110));

    ColumnConfig typeColumn = configColumn(AdminUserBeanDesc.userType, 60);
    typeColumn.setAlignment(HorizontalAlignment.CENTER);
    typeColumn.setRenderer(
        new GridCellRenderer<ModelData>() {

          public Object render(
              ModelData model,
              String property,
              ColumnData config,
              int rowIndex,
              int colIndex,
              ListStore<ModelData> store,
              Grid<ModelData> grid) {
            Type type = Type.valueOf((String) model.get(property));
            return TypeDecorator.decorate(type);
          }
        });
    columns.add(typeColumn);
    ColumnConfig activeColumn = configColumn(AdminUserBeanDesc.active, 100);
    activeColumn.setAlignment(HorizontalAlignment.CENTER);
    CheckBoxImageRender.getInstance().render(activeColumn);
    columns.add(activeColumn);
    // columns.add(configCheckColumn(AdminUserBeanDesc.active, 55));
    ColumnConfig creationDateColumn = configColumn(AdminUserBeanDesc.creationDate, 120);
    creationDateColumn.setRenderer(
        new GridCellRenderer<ModelData>() {

          public Object render(
              ModelData model,
              String property,
              com.extjs.gxt.ui.client.widget.grid.ColumnData config,
              int rowIndex,
              int colIndex,
              ListStore<ModelData> store,
              Grid<ModelData> grid) {
            return DateTimeFormat.getFormat("yyyy-MM-dd HH:mm:ss")
                .format((Date) model.get(AdminUserBeanDesc.creationDate.getName()));
          }
        });
    columns.add(creationDateColumn);
    columns.add(configColumn(AdminUserBeanDesc.authenticationLogin, 100));

    final ColumnModel cm = new ColumnModel(columns);

    GroupingView gridview = new GroupingView() { // for RoleBean grouping

          @Override
          protected String getGroup(
              Object value, ModelData m, int rowIndex, int colIndex, ListStore<ModelData> ds) {
            if (value instanceof RoleBean) {
              // return ((RoleBean) value).getLabel();
              return getSortedGroupLabel(((RoleBean) value).getLabel());
            } else {
              return value == null ? "" : value.toString();
            }
          }
        };
    gridview.setShowGroupedColumn(false);
    gridview.setForceFit(true);
    gridview.setGroupRenderer(
        new GridGroupRenderer() {

          public String render(GroupColumnData data) {
            String f = cm.getColumnById(data.field).getHeader();
            String l =
                data.models.size() == 1
                    ? I18nUtils.getMessages().user_groupTextTpl_member()
                    : I18nUtils.getMessages().user_groupTextTpl_members();

            String label = "";
            if (null != data && null != data.gvalue) {
              label = data.gvalue.toString();
            }

            return f
                + ": "
                + getSortedGroupLabel(label)
                + " ("
                + data.models.size()
                + " "
                + l
                + ")";
          }
        });

    Grid<ModelData> grid = new Grid<ModelData>(store, cm);
    grid.setView(gridview);
    grid.setAutoExpandColumn(AdminUserBeanDesc.login.getName());
    grid.getSelectionModel().setSelectionMode(SelectionMode.SINGLE);

    return grid;
  }
コード例 #19
0
  private Grid<AuditEventEntryWeb> setupGrid() {

    GridCellRenderer<AuditEventEntryWeb> refButtonRenderer =
        new GridCellRenderer<AuditEventEntryWeb>() {
          private boolean init;

          @Override
          public Object render(
              final AuditEventEntryWeb model,
              String property,
              com.extjs.gxt.ui.client.widget.grid.ColumnData config,
              int rowIndex,
              int colIndex,
              ListStore<AuditEventEntryWeb> store,
              Grid<AuditEventEntryWeb> grid) {

            if (!init) {
              init = true;
              grid.addListener(
                  Events.ColumnResize,
                  new Listener<GridEvent<AuditEventEntryWeb>>() {

                    public void handleEvent(GridEvent<AuditEventEntryWeb> be) {
                      for (int i = 0; i < be.getGrid().getStore().getCount(); i++) {
                        if (be.getGrid().getView().getWidget(i, be.getColIndex()) != null
                            && be.getGrid().getView().getWidget(i, be.getColIndex())
                                instanceof BoxComponent) {
                          ((BoxComponent) be.getGrid().getView().getWidget(i, be.getColIndex()))
                              .setWidth(be.getWidth() - 10);
                        }
                      }
                    }
                  });
            }

            AuditEventEntryWeb auditEvent = model;
            Long refRecordId = auditEvent.getRefRecordId();
            Button b = null;
            if (refRecordId != null) {
              b =
                  new Button(
                      "" + refRecordId.longValue(),
                      new SelectionListener<ButtonEvent>() {
                        @Override
                        public void componentSelected(ButtonEvent ce) {

                          AuditEventEntryWeb auditEvent = model;
                          // Info.display("Information", "Ref Record: "+
                          // auditEvent.getRefRecordId());
                          if (currentEntity != null) {
                            AppEvent event = new AppEvent(AppEvents.EntityByIdRequest);
                            event.setData("entityModel", currentEntity);
                            event.setData("recordId", auditEvent.getRefRecordId());
                            controller.handleEvent(event);
                          }
                        }
                      });
              b.setWidth(grid.getColumnModel().getColumnWidth(colIndex) - 10);
              b.setToolTip("Click for record detail information");
            }

            return b;
          }
        };

    GridCellRenderer<AuditEventEntryWeb> altButtonRenderer =
        new GridCellRenderer<AuditEventEntryWeb>() {
          private boolean init;

          @Override
          public Object render(
              final AuditEventEntryWeb model,
              String property,
              com.extjs.gxt.ui.client.widget.grid.ColumnData config,
              int rowIndex,
              int colIndex,
              ListStore<AuditEventEntryWeb> store,
              Grid<AuditEventEntryWeb> grid) {

            if (!init) {
              init = true;
              grid.addListener(
                  Events.ColumnResize,
                  new Listener<GridEvent<AuditEventEntryWeb>>() {

                    public void handleEvent(GridEvent<AuditEventEntryWeb> be) {
                      for (int i = 0; i < be.getGrid().getStore().getCount(); i++) {
                        if (be.getGrid().getView().getWidget(i, be.getColIndex()) != null
                            && be.getGrid().getView().getWidget(i, be.getColIndex())
                                instanceof BoxComponent) {
                          ((BoxComponent) be.getGrid().getView().getWidget(i, be.getColIndex()))
                              .setWidth(be.getWidth() - 10);
                        }
                      }
                    }
                  });
            }

            AuditEventEntryWeb auditEvent = model;
            Long refRecordId = auditEvent.getAltRefRecordId();
            Button b = null;
            if (refRecordId != null) {
              b =
                  new Button(
                      "" + refRecordId.longValue(),
                      new SelectionListener<ButtonEvent>() {
                        @Override
                        public void componentSelected(ButtonEvent ce) {

                          AuditEventEntryWeb auditEvent = model;
                          // Info.display("Information", "Alt Ref Record: "+
                          // auditEvent.getAltRefRecordId());
                          if (currentEntity != null) {
                            AppEvent event = new AppEvent(AppEvents.EntityByIdRequest);
                            event.setData("entityModel", currentEntity);
                            event.setData("recordId", auditEvent.getAltRefRecordId());
                            controller.handleEvent(event);
                          }
                        }
                      });
              b.setWidth(grid.getColumnModel().getColumnWidth(colIndex) - 10);
              b.setToolTip("Click for record detail information");
            }

            return b;
          }
        };

    // Render to display "Created By" as firstName LastName (Account)
    GridCellRenderer<AuditEventEntryWeb> adminRenderer =
        new GridCellRenderer<AuditEventEntryWeb>() {
          @Override
          public Object render(
              final AuditEventEntryWeb model,
              String property,
              com.extjs.gxt.ui.client.widget.grid.ColumnData config,
              int rowIndex,
              int colIndex,
              ListStore<AuditEventEntryWeb> store,
              Grid<AuditEventEntryWeb> grid) {

            AuditEventEntryWeb auditEvent = model;
            UserWeb user = auditEvent.getUserCreatedBy();
            String createdBy = "";
            if (user != null) {
              createdBy =
                  user.getFirstName() + " " + user.getLastName() + " (" + user.getUsername() + ")";
            }
            return createdBy;
          }
        };

    // Audit Event Grid
    ColumnConfig typeColumn =
        new ColumnConfig("auditEventType.auditEventTypeName", "Event Type", 150);
    ColumnConfig descriptionColumn = new ColumnConfig("auditEventDescription", "Description", 350);
    ColumnConfig dateTimeColumn = new ColumnConfig("dateCreated", "Date Created", 120);
    dateTimeColumn.setDateTimeFormat(DateTimeFormat.getShortDateTimeFormat());
    ColumnConfig refPersonColumn = new ColumnConfig("refRecordId", "Reference Record", 150);
    refPersonColumn.setRenderer(refButtonRenderer);
    ColumnConfig altRefPersonColumn =
        new ColumnConfig("altRefRecordId", "Alt Reference Record", 150);
    altRefPersonColumn.setRenderer(altButtonRenderer);
    ColumnConfig userCreatedByColumn =
        new ColumnConfig("userCreatedBy.username", "Created By", 150);
    userCreatedByColumn.setRenderer(adminRenderer);
    List<ColumnConfig> config = new ArrayList<ColumnConfig>();
    config.add(typeColumn);
    config.add(descriptionColumn);
    config.add(dateTimeColumn);
    config.add(refPersonColumn);
    config.add(altRefPersonColumn);
    config.add(userCreatedByColumn);

    final ColumnModel cm = new ColumnModel(config);

    Grid<AuditEventEntryWeb> grid = new Grid<AuditEventEntryWeb>(store, cm);
    grid.setBorders(true);
    grid.setAutoWidth(true);
    grid.setStripeRows(true);
    grid.getSelectionModel().setSelectionMode(SelectionMode.SINGLE);
    grid.setHeight(330);

    grid.getSelectionModel()
        .addListener(
            Events.SelectionChange,
            new Listener<SelectionChangedEvent<AuditEventEntryWeb>>() {

              public void handleEvent(SelectionChangedEvent<AuditEventEntryWeb> be) {
                List<AuditEventEntryWeb> selection = be.getSelection();
              }
            });

    grid.addListener(
        Events.SortChange,
        new Listener<GridEvent<AuditEventEntryWeb>>() {
          public void handleEvent(GridEvent<AuditEventEntryWeb> be) {
            AuditEventEntryWeb selectField = be.getGrid().getSelectionModel().getSelectedItem();
          }
        });

    return grid;
  }
コード例 #20
0
  private void addGrid() {

    // Grid bases:
    List<ColumnConfig> cc = new LinkedList<ColumnConfig>();

    ColumnConfig ccName =
        new ColumnConfig(
            SetFilterModelData.PROPERTY_NAME, pmsMessages.columnHeaderName(), COLUMN_NAME_WIDTH);
    cc.add(ccName);

    ColumnConfig ccDescription =
        new ColumnConfig(
            SetFilterModelData.PROPERTY_DESCRIPTION,
            pmsMessages.columnHeaderDescription(),
            COLUMN_DESCRIPTION_WIDTH);
    cc.add(ccDescription);

    ColumnConfig ccType =
        new ColumnConfig(
            SetFilterModelData.PROPERTY_TYPE, pmsMessages.columnHeaderType(), COLUMN_TYPE_WIDTH);
    ccType.setRenderer(
        new GridCellRenderer<SetFilterModelData>() {

          public Object render(
              SetFilterModelData model,
              String property,
              ColumnData config,
              int rowIndex,
              int colIndex,
              ListStore<SetFilterModelData> store,
              Grid<SetFilterModelData> grid) {
            if (model.getDTO().getType() != null) {
              return mapFilterTypes.get(model.getDTO().getType().toString());
            }
            return null;
          }
        });
    cc.add(ccType);

    ColumnModel cmOwn = new ColumnModel(cc);

    ListStore<SetFilterModelData> store = new ListStore<SetFilterModelData>();

    grid = new Grid<SetFilterModelData>(store, cmOwn);
    grid.setAutoExpandColumn(SetFilterModelData.PROPERTY_NAME);
    grid.setStyleAttribute(BORDER_TOP_KEY, BORDER_TOP_VALUE);
    GridView gView = grid.getView();
    gView.setForceFit(true);

    grid.getSelectionModel()
        .addSelectionChangedListener(
            new SelectionChangedListener<SetFilterModelData>() {
              @Override
              public void selectionChanged(SelectionChangedEvent<SetFilterModelData> se) {
                boolean enabled = false;
                if (se.getSelectedItem() != null) {
                  enabled = true;
                }
                bEdit.setEnabled(enabled);
                bDelete.setEnabled(enabled);
              }
            });
    add(grid);
  }