private Grid<BeanModel> createTypeGrid() {
    List<ColumnConfig> configs = new ArrayList<ColumnConfig>();
    ColumnConfig column = new ColumnConfig();

    column.setId("code");
    column.setHeader("类型");
    column.setWidth(50);
    column.setRowHeader(true);
    configs.add(column);

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

    column = new ColumnConfig();
    column.setId("description");
    column.setHeader("特征");
    column.setWidth(150);
    configs.add(column);

    column = new ColumnConfig();
    column.setId("weight");
    column.setHeader("重量");
    column.setWidth(50);
    configs.add(column);

    Grid<BeanModel> grid = new Grid<BeanModel>(ironChestStore, new ColumnModel(configs));
    grid.setBorders(true);
    grid.setStyleAttribute("backgroundColor", "#dfe8f6");
    return grid;
  }
  @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);
  }
  private Grid<BeanModel> createBracketGrid() {
    List<ColumnConfig> configs = new ArrayList<ColumnConfig>();
    ColumnConfig column = new ColumnConfig();

    column.setId("code");
    column.setHeader("托架代码");
    column.setWidth(50);
    column.setRowHeader(true);
    configs.add(column);

    column = new ColumnConfig();
    column.setId("manufacturer");
    column.setHeader("生产厂家");
    column.setWidth(100);
    configs.add(column);

    column = new ColumnConfig();
    column.setId("modelNo");
    column.setHeader("型号");
    column.setWidth(70);
    configs.add(column);

    column = new ColumnConfig();
    column.setId("specification");
    column.setHeader("规格");
    column.setWidth(150);
    configs.add(column);

    column = new ColumnConfig();
    column.setId("weight");
    column.setHeader("重量");
    column.setWidth(50);
    configs.add(column);

    Grid<BeanModel> grid = new Grid<BeanModel>(bracketStore, new ColumnModel(configs));
    grid.setBorders(true);
    return grid;
  }
  private Grid<BeanModel> createGrid() {
    List<ColumnConfig> configs = new ArrayList<ColumnConfig>();
    ColumnConfig column = new ColumnConfig();

    configs.add(selectionMode.getColumn());

    column.setId("no");
    column.setHeader("序号");
    column.setWidth(100);
    column.setRowHeader(true);
    configs.add(column);

    column = new ColumnConfig();
    column.setId("name");
    column.setHeader("成品名称");
    column.setWidth(226);
    configs.add(column);

    column = new ColumnConfig();
    column.setId("goodModel");
    column.setHeader("规格、型号");
    column.setWidth(226);
    configs.add(column);

    column = new ColumnConfig();
    column.setNumberFormat(NumberFormat.getCurrencyFormat(new MyCurrencyData()));
    column.setId("processFee");
    column.setHeader("加工费(单价)");
    column.setWidth(100);
    configs.add(column);

    store.setMonitorChanges(true);
    Grid<BeanModel> grid = new Grid<BeanModel>(store, new ColumnModel(configs));
    grid.setSelectionModel(selectionMode);
    grid.addPlugin(selectionMode);
    return grid;
  }
示例#5
0
  /** 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);
  }
  @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);
  }
  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;
  }
示例#8
0
  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);
  }
  private List<ColumnConfig> createColumns() {
    List<ColumnConfig> configs = new ArrayList<ColumnConfig>();

    ColumnConfig column = new ColumnConfig();

    column = new ColumnConfig();
    column.setId("nome");
    column.setHeader("Nominativo");
    column.setWidth(140);
    ListStore<PersonaleModel> store = new ListStore<PersonaleModel>();
    cmbxPersonale = new ComboBox<PersonaleModel>();
    cmbxPersonale.setStore(store);
    cmbxPersonale.setDisplayField("nomeCompleto");
    cmbxPersonale.setEmptyText("Selezionare..");
    cmbxPersonale.setEditable(true);
    cmbxPersonale.setVisible(true);
    cmbxPersonale.setTriggerAction(TriggerAction.ALL);
    cmbxPersonale.setForceSelection(true);
    cmbxPersonale.setAllowBlank(false);
    cmbxPersonale.addListener(
        Events.OnClick,
        new Listener<BaseEvent>() {
          @Override
          public void handleEvent(BaseEvent be) {
            getAllDipendenti();
          }

          private void getAllDipendenti() {
            AdministrationService.Util.getInstance()
                .getListaDipendentiModel(
                    "",
                    new AsyncCallback<List<PersonaleModel>>() {

                      @Override
                      public void onFailure(Throwable caught) {
                        Window.alert("Errore connessione on getListaDipendentiModel();");
                        caught.printStackTrace();
                      }

                      @Override
                      public void onSuccess(List<PersonaleModel> result) {
                        if (result != null) {
                          ListStore<PersonaleModel> lista = new ListStore<PersonaleModel>();
                          lista.setStoreSorter(new StoreSorter<PersonaleModel>());
                          lista.setDefaultSort("nomeCompleto", SortDir.ASC);

                          lista.add(result);
                          cmbxPersonale.clear();
                          cmbxPersonale.setStore(lista);

                        } else Window.alert("error: Errore durante l'accesso ai dati Personale.");
                      }
                    });
          }
        });
    cmbxPersonale.addListener(
        Events.Select,
        new Listener<BaseEvent>() {
          @Override
          public void handleEvent(BaseEvent be) {
            int idPersonale = cmbxPersonale.getValue().get("idPersonale");

            csm.getSelectedItem().set("idPersonale", idPersonale);
          }
        });
    CellEditor editor =
        new CellEditor(cmbxPersonale) {
          @Override
          public Object preProcessValue(Object value) {
            if (value == null) {
              return value;
            }
            return cmbxPersonale.getValue();
          }

          @Override
          public Object postProcessValue(Object value) {
            if (value == null) {
              return value;
            }
            return ((ModelData) value).get("nomeCompleto");
          }
        };
    column.setEditor(editor);
    configs.add(column);

    column = new ColumnConfig();
    column.setId("tipoOrario");
    column.setHeader("Orario Giornaliero");
    column.setWidth(50);
    configs.add(column);

    column = new ColumnConfig();
    column.setId("costoAnnuo");
    column.setHeader("Costo Annuo");
    column.setWidth(100);
    txtfldcostoAnno = new TextField<String>();
    txtfldcostoAnno.setValue("0.00");
    txtfldcostoAnno.setRegex("^([0-9]+).([0-9]{1,2})$");
    txtfldcostoAnno.addKeyListener(
        new KeyListener() {
          public void componentKeyDown(ComponentEvent event) {
            int keyCode = event.getKeyCode();
            if (keyCode == 9) {

              if (txtfldcostoAnno.getValue() == null) txtfldcostoAnno.setValue("0.00");
              else {
                String valore = txtfldcostoAnno.getValue().toString();

                if (valore.compareTo("") == 0) valore = "0.00";
                else if (valore.indexOf(".") == -1) valore = valore + ".00";
                else {
                  int index = valore.indexOf(".");
                  int length = valore.length();

                  if (valore.substring(index + 1, length).length() == 1) valore = valore + "0";
                  else if (valore.substring(index + 1, length).length() == 0)
                    valore = valore + "00";
                }
                txtfldcostoAnno.setValue(valore);
              }
            }
          }
        });
    column.setEditor(new CellEditor(txtfldcostoAnno));
    configs.add(column);

    column = new ColumnConfig();
    column.setId("orePreviste");
    column.setHeader("Ore Previste");
    column.setWidth(100);
    txtfldoreAnno = new TextField<String>();
    txtfldoreAnno.setValue("0");
    txtfldoreAnno.setRegex("^([0-9]+)");
    txtfldoreAnno.addKeyListener(
        new KeyListener() {
          public void componentKeyDown(ComponentEvent event) {
            int keyCode = event.getKeyCode();
            if (keyCode == 9) {

              if (txtfldoreAnno.getValue() == null) txtfldoreAnno.setValue("0");
              else {
                String valore = txtfldoreAnno.getValue().toString();

                if (valore.compareTo("") == 0) valore = "0";

                txtfldoreAnno.setValue(valore);
              }
            }
          }
        });
    column.setEditor(new CellEditor(txtfldoreAnno));
    configs.add(column);

    column = new ColumnConfig();
    column.setId("costoOrario");
    column.setHeader("Costo Orario");
    column.setWidth(100);
    txtfldcostoOrario = new TextField<String>();
    txtfldcostoOrario.setValue("0.00");
    txtfldcostoOrario.setRegex("^([0-9]+).([0-9]{1,2})$");
    txtfldcostoOrario.addKeyListener(
        new KeyListener() {

          /*	public void componentKeyUp(ComponentEvent event) {
          	txtfldNumeroOreResidue.setValue(txtfldNumeroOre.getValue());
          }
          */
          public void componentKeyDown(ComponentEvent event) {
            int keyCode = event.getKeyCode();
            if (keyCode == 9) {

              if (txtfldcostoOrario.getValue() == null) txtfldcostoOrario.setValue("0.00");
              else {
                String valore = txtfldcostoOrario.getValue().toString();

                if (valore.compareTo("") == 0) valore = "0.00";
                else if (valore.indexOf(".") == -1) valore = valore + ".00";
                else {
                  int index = valore.indexOf(".");
                  int length = valore.length();

                  if (valore.substring(index + 1, length).length() == 1) valore = valore + "0";
                  else if (valore.substring(index + 1, length).length() == 0)
                    valore = valore + "00";
                }
                txtfldcostoOrario.setValue(valore);
              }
            }
          }
        });
    column.setEditor(new CellEditor(txtfldcostoOrario));
    configs.add(column);

    column = new ColumnConfig();
    column.setId("costoTrasferta");
    column.setHeader("Costo Trasferta");
    column.setWidth(100);
    txtfldcostoTrasferta = new TextField<String>();
    txtfldcostoTrasferta.setValue("0.00");
    txtfldcostoTrasferta.setRegex("^([0-9]+).([0-9]{1,2})$");
    txtfldcostoTrasferta.addKeyListener(
        new KeyListener() {
          public void componentKeyDown(ComponentEvent event) {
            int keyCode = event.getKeyCode();
            if (keyCode == 9) {

              if (txtfldcostoTrasferta.getValue() == null) txtfldcostoTrasferta.setValue("0.00");
              else {
                String valore = txtfldcostoTrasferta.getValue().toString();

                if (valore.compareTo("") == 0) valore = "0.00";
                else if (valore.indexOf(".") == -1) valore = valore + ".00";
                else {
                  int index = valore.indexOf(".");
                  int length = valore.length();

                  if (valore.substring(index + 1, length).length() == 1) valore = valore + "0";
                  else if (valore.substring(index + 1, length).length() == 0)
                    valore = valore + "00";
                }
                txtfldcostoTrasferta.setValue(valore);
              }
            }
          }
        });
    column.setEditor(new CellEditor(txtfldcostoTrasferta));
    configs.add(column);

    column = new ColumnConfig();
    column.setId("costoStruttura");
    column.setHeader("Costo Struttura");
    column.setWidth(100);
    txtfldCostoStruttura = new TextField<String>();
    txtfldCostoStruttura.setValue("0.00");
    txtfldCostoStruttura.setRegex("^([0-9]+).([0-9]{1,2})$");
    txtfldCostoStruttura.addKeyListener(
        new KeyListener() {

          /*	public void componentKeyUp(ComponentEvent event) {
          	txtfldNumeroOreResidue.setValue(txtfldNumeroOre.getValue());
          }
          */
          public void componentKeyDown(ComponentEvent event) {
            int keyCode = event.getKeyCode();
            if (keyCode == 9) {

              if (txtfldCostoStruttura.getValue() == null) txtfldCostoStruttura.setValue("0.00");
              else {
                String valore = txtfldCostoStruttura.getValue().toString();

                if (valore.compareTo("") == 0) valore = "0.00";
                else if (valore.indexOf(".") == -1) valore = valore + ".00";
                else {
                  int index = valore.indexOf(".");
                  int length = valore.length();

                  if (valore.substring(index + 1, length).length() == 1) valore = valore + "0";
                  else if (valore.substring(index + 1, length).length() == 0)
                    valore = valore + "00";
                }
                txtfldCostoStruttura.setValue(valore);
              }
            }
          }
        });
    column.setEditor(new CellEditor(txtfldCostoStruttura));
    configs.add(column);

    column = new ColumnConfig();
    column.setId("costoOneri");
    column.setHeader("Costo Oneri");
    column.setWidth(100);
    txtfldCostoOneri = new TextField<String>();
    txtfldCostoOneri.setValue("0.00");
    txtfldCostoOneri.setRegex("^([0-9]+).([0-9]{1,2})$");
    txtfldCostoOneri.addKeyListener(
        new KeyListener() {

          /*	public void componentKeyUp(ComponentEvent event) {
          	txtfldNumeroOreResidue.setValue(txtfldNumeroOre.getValue());
          }
          */
          public void componentKeyDown(ComponentEvent event) {
            int keyCode = event.getKeyCode();
            if (keyCode == 9) {

              if (txtfldCostoOneri.getValue() == null) txtfldCostoOneri.setValue("0.00");
              else {
                String valore = txtfldCostoOneri.getValue().toString();

                if (valore.compareTo("") == 0) valore = "0.00";
                else if (valore.indexOf(".") == -1) valore = valore + ".00";
                else {
                  int index = valore.indexOf(".");
                  int length = valore.length();

                  if (valore.substring(index + 1, length).length() == 1) valore = valore + "0";
                  else if (valore.substring(index + 1, length).length() == 0)
                    valore = valore + "00";
                }
                txtfldCostoOneri.setValue(valore);
              }
            }
          }
        });
    column.setEditor(new CellEditor(txtfldCostoOneri));
    configs.add(column);

    column = new ColumnConfig();
    column.setId("costoSw");
    column.setHeader("Costo SW");
    column.setWidth(100);
    txtfldCostoSoftware = new TextField<String>();
    txtfldCostoSoftware.setValue("0.00");
    txtfldCostoSoftware.setRegex("^([0-9]+).([0-9]{1,2})$");
    txtfldCostoSoftware.addKeyListener(
        new KeyListener() {
          public void componentKeyDown(ComponentEvent event) {
            int keyCode = event.getKeyCode();
            if (keyCode == 9) {

              if (txtfldCostoSoftware.getValue() == null) txtfldCostoSoftware.setValue("0.00");
              else {
                String valore = txtfldCostoSoftware.getValue().toString();

                if (valore.compareTo("") == 0) valore = "0.00";
                else if (valore.indexOf(".") == -1) valore = valore + ".00";
                else {
                  int index = valore.indexOf(".");
                  int length = valore.length();

                  if (valore.substring(index + 1, length).length() == 1) valore = valore + "0";
                  else if (valore.substring(index + 1, length).length() == 0)
                    valore = valore + "00";
                }
                txtfldCostoSoftware.setValue(valore);
              }
            }
          }
        });
    column.setEditor(new CellEditor(txtfldCostoSoftware));
    configs.add(column);

    column = new ColumnConfig();
    column.setId("costoHw");
    column.setHeader("Costo HW");
    column.setWidth(100);
    txtfldCostoHardware = new TextField<String>();
    txtfldCostoHardware.setValue("0.00");
    txtfldCostoHardware.setRegex("^([0-9]+).([0-9]{1,2})$");
    txtfldCostoHardware.addKeyListener(
        new KeyListener() {

          /*	public void componentKeyUp(ComponentEvent event) {
          	txtfldNumeroOreResidue.setValue(txtfldNumeroOre.getValue());
          }
          */
          public void componentKeyDown(ComponentEvent event) {
            int keyCode = event.getKeyCode();
            if (keyCode == 9) {

              if (txtfldCostoHardware.getValue() == null) txtfldCostoHardware.setValue("0.00");
              else {
                String valore = txtfldCostoHardware.getValue().toString();

                if (valore.compareTo("") == 0) valore = "0.00";
                else if (valore.indexOf(".") == -1) valore = valore + ".00";
                else {
                  int index = valore.indexOf(".");
                  int length = valore.length();

                  if (valore.substring(index + 1, length).length() == 1) valore = valore + "0";
                  else if (valore.substring(index + 1, length).length() == 0)
                    valore = valore + "00";
                }
                txtfldCostoHardware.setValue(valore);
              }
            }
          }
        });
    column.setEditor(new CellEditor(txtfldCostoHardware));
    configs.add(column);

    column = new ColumnConfig();
    column.setId("costoHwSw");
    column.setHeader("Costo HwSw");
    column.setWidth(100);
    configs.add(column);

    column = new ColumnConfig();
    column.setId("costoOrarioTotale");
    column.setHeader("CostoTot/h");
    column.setWidth(100);
    configs.add(column);

    column = new ColumnConfig();
    column.setId("gruppoLavoro");
    column.setHeader("Area");
    column.setWidth(160);
    configs.add(column);

    return configs;
  }
  @Override
  protected void onRender(Element parent, int index) {

    super.onRender(parent, index);

    setLayout(new CenterLayout());

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

    configs.add(sm.getColumn());

    ColumnConfig column = new ColumnConfig();
    column.setId("ragioneSociale");
    column.setHeader("Ragione Sociale");
    column.setWidth(120);

    TextField<String> text = new TextField<String>();
    // text.setAllowBlank(false);
    column.setEditor(new CellEditor(text));
    configs.add(column);

    column = new ColumnConfig();
    column.setId("cognome");
    column.setHeader("Cognome");
    column.setWidth(120);

    text = new TextField<String>();
    // text.setAllowBlank(false);
    column.setEditor(new CellEditor(text));
    configs.add(column);

    column = new ColumnConfig();
    column.setId("nome");
    column.setHeader("Nome");
    column.setWidth(120);

    text = new TextField<String>();
    // text.setAllowBlank(false);
    column.setEditor(new CellEditor(text));
    configs.add(column);

    column = new ColumnConfig();
    column.setId("cf");
    column.setHeader("Codice Fiscale");
    column.setWidth(120);

    text = new TextField<String>();
    // text.setAllowBlank(false);
    column.setEditor(new CellEditor(text));
    configs.add(column);

    column = new ColumnConfig();
    column.setId("piva");
    column.setHeader("Partita IVA");
    column.setWidth(120);

    text = new TextField<String>();
    text.setAllowBlank(false);
    column.setEditor(new CellEditor(text));
    configs.add(column);

    column = new ColumnConfig();
    column.setId("denominazione");
    column.setHeader("Denominazione");
    column.setWidth(120);

    text = new TextField<String>();
    text.setAllowBlank(false);
    column.setEditor(new CellEditor(text));
    configs.add(column);

    caricaDati();

    ColumnModel cm = new ColumnModel(configs);

    ContentPanel cp = new ContentPanel();
    cp.setHeading("Anagrafica aziende");
    cp.setFrame(true);
    // cp.setIcon(Resources.ICONS.table());
    cp.setSize(Consts.LarghezzaFinestra, Consts.AltezzaFinestra);
    cp.setLayout(new FitLayout());

    final EditorGrid<BeanModel> grid = new EditorGrid<BeanModel>(store, cm);
    grid.setSelectionModel(sm);
    grid.setAutoExpandColumn("nome");
    grid.setBorders(true);
    grid.setClicksToEdit(EditorGrid.ClicksToEdit.TWO);
    cp.add(grid);

    ToolBar toolBar = new ToolBar();
    Button addButton = new Button("Aggiungi azienda");
    addButton.setIcon(
        IconHelper.create(
            "/resources/grafica/x16/add2.png", Consts.ICON_WIDTH_SMALL, Consts.ICON_HEIGHT_SMALL));
    addButton.addSelectionListener(
        new SelectionListener<ButtonEvent>() {

          @Override
          public void componentSelected(ButtonEvent ce) {
            BeanModelFactory factory = BeanModelLookup.get().getFactory(Azienda.class);
            Azienda azienda =
                new Azienda(
                    "NuovoNome",
                    "NuovoCognome",
                    "nuovaRS",
                    "nuovoCF",
                    "nuovaPIVA",
                    "NuovaDenominazione");
            BeanModel model = factory.createModel(azienda);

            grid.stopEditing();
            aziende.add(azienda);
            store.insert(model, 0);
            grid.startEditing(store.indexOf(model), 0);
          }
        });
    toolBar.add(addButton);
    toolBar.add(new SeparatorToolItem());

    Button remove = new Button("Rimuovi selezionati");
    remove.setIcon(
        IconHelper.create(
            "/resources/grafica/x16/delete2.png",
            Consts.ICON_WIDTH_SMALL,
            Consts.ICON_HEIGHT_SMALL));
    remove.addSelectionListener(
        new SelectionListener<ButtonEvent>() {

          @Override
          public void componentSelected(ButtonEvent ce) {
            if (!(sm.getSelectedItems()).isEmpty()) {
              MessageBox.confirm(
                  "Confirm",
                  "Sei sicuro di voler eliminare gli elemtni selezionati?",
                  cancellazione);
            } else {
              MessageBox.alert("Errore", "Selezionare uno o più elementi", cancellazione);
            }
          }
          // conferma per l'eliminazione
          final Listener<MessageBoxEvent> cancellazione =
              new Listener<MessageBoxEvent>() {

                @Override
                public void handleEvent(MessageBoxEvent ce) {
                  Button btn = ce.getButtonClicked();
                  if (btn.getText().equals("Yes")) {
                    List<BeanModel> modelsDaRimuovere = sm.getSelectedItems();
                    ArrayList<Azienda> aziendeDaRimuovere = new ArrayList();
                    if (modelsDaRimuovere != null) {
                      Iterator it = modelsDaRimuovere.iterator();
                      while (it.hasNext()) {
                        Object model = it.next();
                        store.remove((BeanModel) model);
                        Azienda azienda = ((BeanModel) model).getBean();
                        aziendeDaRimuovere.add(azienda);
                        aziende.remove(azienda);
                      }
                      cancellaDati(aziendeDaRimuovere);
                    }
                  }
                }
              };
        });
    toolBar.add(remove);
    cp.setTopComponent(toolBar);

    ToolBar statusBar = new ToolBar();
    status.setWidth(350);
    statusBar.add(status);
    cp.setBottomComponent(statusBar);
    cp.setButtonAlign(HorizontalAlignment.CENTER);

    Button resetButton =
        new Button(
            "Reset",
            new SelectionListener<ButtonEvent>() {

              @Override
              public void componentSelected(ButtonEvent ce) {
                store.rejectChanges();
              }
            });
    resetButton.setIcon(
        IconHelper.create(
            "/resources/grafica/x16/undo.png", Consts.ICON_WIDTH_SMALL, Consts.ICON_HEIGHT_SMALL));
    cp.addButton(resetButton);

    Button saveButton =
        new Button(
            "Save",
            new SelectionListener<ButtonEvent>() {

              @Override
              public void componentSelected(ButtonEvent ce) {
                store.commitChanges();
                salvaDati(aziende);
              }
            });
    saveButton.setIcon(
        IconHelper.create(
            "/resources/grafica/x16/save.png", Consts.ICON_WIDTH_SMALL, Consts.ICON_HEIGHT_SMALL));
    cp.addButton(saveButton);

    add(cp);
  }
  /*
   * (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);
  }
  /** 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);
  }
  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);
  }
示例#14
0
  public TaskGrid() {
    setLayout(new FlowLayout(10));
    getAriaSupport().setPresentation(true);

    final NumberFormat currency = NumberFormat.getCurrencyFormat();
    final NumberFormat number = NumberFormat.getFormat("0.00");
    // final NumberCellRenderer<Grid<Stock>> numberRenderer = new NumberCellRenderer<Grid<Stock>>(
    //		currency);

    /*
    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) {
    		Object o = model.get(property);

    		String v = "(not set)";
    		if(o == null) {
    			double val = (Double)o;
    			String style = val < 0 ? "red"
    					: GXT.isHighContrastMode ? "#00ff5a" : "green";
    			v = number.format(val);

    		}

    		return "<span qtitle='"
    				+ cm.getColumnById(property).getHeader() + "' qtip='"
    				+ v + "' style='font-weight: bold;color:" + style
    				+ "'>" + v + "</span>";
    	}
    };*/

    /*
    GridCellRenderer<Stock> gridNumber = new GridCellRenderer<Stock>() {
    	public String render(Stock model, String property,
    			ColumnData config, int rowIndex, int colIndex,
    			ListStore<Stock> store, Grid<Stock> grid) {
    		return numberRenderer.render(null, property,
    				model.get(property));
    	}
    };*/

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

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

    column = new ColumnConfig();
    column.setId("direction");
    column.setHeader("Direction");
    column.setAlignment(HorizontalAlignment.RIGHT);
    column.setWidth(100);
    configs.add(column);

    column = new ColumnConfig();
    column.setId("sampled");
    column.setHeader("Sampled");
    column.setAlignment(HorizontalAlignment.RIGHT);
    column.setWidth(100);
    configs.add(column);

    column = new ColumnConfig();
    column.setId("sampleSize");
    column.setHeader("Sample size");
    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", "Finished", 100);
    column.setAlignment(HorizontalAlignment.RIGHT);
    column.setDateTimeFormat(DateTimeFormat.getFormat("MM/dd/yyyy"));
    configs.add(column);

    // ListStore<TaskDescription> store = new ListStore<TaskDescription>();
    // store.add(getStocks());

    // store.add(TaskData.getStocks());

    // store.add(getStocks());

    cm = new ColumnModel(configs);

    ContentPanel cp = new ContentPanel();
    cp.setBodyBorder(true);
    // cp.setIcon(Resources.ICONS.table());
    cp.setHeading("Available Linksets");
    cp.setButtonAlign(HorizontalAlignment.CENTER);
    cp.setLayout(new FitLayout());
    cp.getHeader().setIconAltText("Grid Icon");
    cp.setSize(600, 300);

    // final Grid<TaskDescription>
    grid = new Grid<TaskDescription>(getStocks(), cm);
    grid.setStyleAttribute("borderTop", "none");
    grid.setAutoExpandColumn("name");
    grid.setBorders(false);
    grid.setStripeRows(true);
    grid.setColumnLines(true);
    grid.setColumnReordering(true);
    grid.getAriaSupport().setLabelledBy(cp.getHeader().getId() + "-label");
    cp.add(grid);

    ToolBar toolBar = new ToolBar();
    toolBar.getAriaSupport().setLabel("Grid Options");

    toolBar.add(new LabelToolItem("Selection Mode: "));
    final SimpleComboBox<String> type = new SimpleComboBox<String>();
    type.getAriaSupport().setLabelledBy(toolBar.getItem(0).getId());
    type.setTriggerAction(TriggerAction.ALL);
    type.setEditable(false);
    type.setFireChangeEventOnSetValue(true);
    type.setWidth(100);
    type.add("Row");
    type.add("Cell");
    type.setSimpleValue("Row");
    type.addListener(
        Events.Change,
        new Listener<FieldEvent>() {
          public void handleEvent(FieldEvent be) {
            boolean cell = type.getSimpleValue().equals("Cell");
            grid.getSelectionModel().deselectAll();
            if (cell) {
              grid.setSelectionModel(new CellSelectionModel<TaskDescription>());
            } else {
              grid.setSelectionModel(new GridSelectionModel<TaskDescription>());
            }
          }
        });
    toolBar.add(type);

    cp.setTopComponent(toolBar);

    add(cp);

    // needed to enable quicktips (qtitle for the heading and qtip for the
    // content) that are setup in the change GridCellRenderer
    new QuickTip(grid);
  }
示例#15
0
  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;
  }
示例#16
0
  public IncidentGrid(final Tabs tabs) {
    this.tabs = tabs;
    List<ColumnConfig> configs = new ArrayList<ColumnConfig>();

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

    column = new ColumnConfig();
    column.setId("category");
    column.setHeader("Category");
    column.setWidth(100);
    configs.add(column);

    column = new ColumnConfig();
    column.setId("status");
    column.setHeader("Status");
    column.setWidth(100);
    configs.add(column);

    column = new ColumnConfig();
    column.setId("urgency");
    column.setHeader("Urgency");
    column.setWidth(100);
    configs.add(column);

    column = new ColumnConfig();
    column.setId("impact");
    column.setHeader("Impact");
    column.setWidth(100);
    configs.add(column);

    ColumnModel cm = new ColumnModel(configs);

    final ListStore<Incident> store = new ListStore<Incident>();

    incidentManager.getIncidents(
        new AsyncCallback<List<Incident>>() {

          public void onFailure(Throwable caught) {
            // TODO Auto-generated method stub

          }

          public void onSuccess(List<Incident> result) {
            List<Incident> filteredResult = new ArrayList<Incident>();
            if (tabs.getUser().getUserType().equals(UserType.ADMIN)) {
              filteredResult = result;
            } else {
              for (Incident i : result) {
                if (i.getUserName().equals(tabs.getUser().getName())) {
                  filteredResult.add(i);
                }
              }
            }
            store.add(filteredResult);
          }
        });

    ContentPanel cp = new ContentPanel();
    cp.setBodyBorder(false);
    cp.setHeading("Basic Grid");
    // cp.setButtonAlign(HorizontalAlignment.CENTER);
    cp.setLayout(new FitLayout());
    cp.setSize(600, 200);

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

    add(cp);
  }