Example #1
0
  BaseGrid<BusiObject> create_bcode_famify_Grid() {
    CheckBoxSelectionModel<BusiObject> cbs = new CheckBoxSelectionModel<BusiObject>();
    List<ColumnConfig> columns = new ArrayList<ColumnConfig>();
    columns.add(cbs.getColumn());
    ColumnConfig C3 = new ColumnConfig("ChineseName", "中文名", 80);
    C3.setEditor(new CellEditor(new TextField<String>()));
    columns.add(C3);
    ColumnConfig C4 = new ColumnConfig("englishname", "英文名称", 80);
    C4.setEditor(new CellEditor(new TextField<String>()));
    columns.add(C4);
    ColumnConfig C5 = new ColumnConfig("Relationship", "关系", 80);
    BaseComboBoxX bc5 = new BaseComboBoxX("name", "dictionary", "where type='hr_relationship'");
    C5.setEditor(bc5.getCellEditor());

    columns.add(C5);
    ColumnConfig C6 = new ColumnConfig("Birthday", "生日", 80);
    DateField dateField6 = new DateField();
    dateField6.getPropertyEditor().setFormat(DateTimeFormat.getFormat("yyyy-MM-dd"));
    C6.setEditor(new CellEditor(dateField6));
    C6.setDateTimeFormat(DateTimeFormat.getFormat("yyyy-MM-dd"));
    columns.add(C6);
    ColumnConfig C7 = new ColumnConfig("sex", "性别", 80);
    BaseComboBoxX bc7 = new BaseComboBoxX("name", "dictionary", "where type='hr_sex'");
    C7.setEditor(bc7.getCellEditor());
    columns.add(C7);
    ColumnConfig C8 = new ColumnConfig("Nationality", "国籍", 80);
    BaseComboBoxX bc8 = new BaseComboBoxX("name", "dictionary", "where type='hr_Country'");
    C8.setEditor(bc8.getCellEditor());
    columns.add(C8);
    ColumnConfig C9 = new ColumnConfig("PassportNo", "护照编码", 80);
    C9.setEditor(new CellEditor(new TextField<String>()));
    columns.add(C9);
    ColumnConfig C10 = new ColumnConfig("PassportIssueCountry", "护照发出地", 80);
    C10.setEditor(new CellEditor(new TextField<String>()));
    columns.add(C10);
    ColumnConfig C11 = new ColumnConfig("PassportIssueDate", "护照发出日期", 80);
    DateField dateField11 = new DateField();
    dateField11.getPropertyEditor().setFormat(DateTimeFormat.getFormat("yyyy-MM-dd"));
    C11.setEditor(new CellEditor(dateField11));
    C11.setDateTimeFormat(DateTimeFormat.getFormat("yyyy-MM-dd"));
    columns.add(C11);
    ColumnConfig C12 = new ColumnConfig("Occupation", "职业", 80);
    C12.setEditor(new CellEditor(new TextField<String>()));
    columns.add(C12);
    ColumnConfig C13 = new ColumnConfig("Company", "公司", 80);
    C13.setEditor(new CellEditor(new TextField<String>()));
    columns.add(C13);
    ColumnConfig C14 = new ColumnConfig("JobPosition", "职位", 80);
    C14.setEditor(new CellEditor(new TextField<String>()));
    columns.add(C14);

    ColumnModel cm = new ColumnModel(columns);
    bcode_famify_grid = new BaseGrid<BusiObject>(get_bcode_famify_Store(), cm, true, true);
    cbs.setSelectionMode(SelectionMode.SINGLE);
    bcode_famify_grid.setSelectionModel(cbs);
    bcode_famify_grid.setHeight(400);
    return bcode_famify_grid;
  }
Example #2
0
  public UpcomingEventsTab() {

    super("Upcoming Events");
    addEventHandlers();

    setLayout(new FitLayout());

    store = new GroupingStore<UpcomingEventModelData>();
    // store.add(TestData.getStocks());

    ColumnConfig country = new ColumnConfig("country", "Country", 30);
    ColumnConfig city = new ColumnConfig("city", "City", 20);
    ColumnConfig venueName = new ColumnConfig("venueName", "Venue Name", 20);
    ColumnConfig startDate = new ColumnConfig("startDate", "Start Date", 20);
    ColumnConfig street = new ColumnConfig("street", "Street", 20);
    startDate.setDateTimeFormat(DateTimeFormat.getFormat("MM/dd/y"));

    List<ColumnConfig> config = new ArrayList<ColumnConfig>();
    config.add(country);
    config.add(city);
    config.add(venueName);
    config.add(street);
    config.add(startDate);

    final ColumnModel cm = new ColumnModel(config);

    GroupingView view = new GroupingView();
    view.setShowGroupedColumn(false);
    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<UpcomingEventModelData> grid = new Grid<UpcomingEventModelData>(store, cm);
    grid.setView(view);
    grid.setBorders(true);

    grid.addListener(
        Events.RowDoubleClick,
        new Listener<GridEvent<UpcomingEventModelData>>() {

          public void handleEvent(GridEvent<UpcomingEventModelData> be) {

            Window.open(be.getModel().getUrl(), "Events", "");
          }
        });
    grid.setStateful(true);
    grid.setAutoExpandColumn("city");
    grid.setLoadMask(true);
    // grid.setBorders(true);
    // grid.setStripeRows(true);
    add(grid);
  }
  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);
  }
Example #4
0
  BaseGrid createGrid() {
    CheckBoxSelectionModel cbs = new CheckBoxSelectionModel();
    List<ColumnConfig> columns = new ArrayList<ColumnConfig>();
    columns.add(cbs.getColumn());

    //		ColumnConfig C3 = new ColumnConfig("icode",
    //				"icode", 180);
    //		columns.add(C3);

    ColumnConfig C1 = new ColumnConfig("bcode", "人员", 100);

    columns.add(C1);
    ColumnConfig C2 = new ColumnConfig("employstatus", "状态", 100);
    TextField<String> C2_t = new TextField<String>();
    C2.setEditor(new CellEditor(C2_t));
    columns.add(C2);

    ColumnConfig C3 = new ColumnConfig("leavereason", "离职原因", 100);
    TextField<String> C3_t = new TextField<String>();
    C3.setEditor(new CellEditor(C3_t));
    C3.setHidden(true);
    columns.add(C3);

    ColumnConfig C4 = new ColumnConfig("leavemark", "离职备注", 100);
    TextField<String> C4_t = new TextField<String>();
    C4.setEditor(new CellEditor(C4_t));
    C4.setHidden(true);
    columns.add(C4);

    ColumnConfig C5 = new ColumnConfig("Resignationdate", "离职日期", 180);
    C5.setDateTimeFormat(DateTimeFormat.getFormat("yyyy-MM-dd"));
    //		C5.setEditor(new CellEditor(C4_t));
    C5.setHidden(true);
    columns.add(C5);

    ColumnModel cm = new ColumnModel(columns);
    grid = new BaseGrid(getStore(), cm);
    cbs.setSelectionMode(SelectionMode.SIMPLE);
    grid.setSelectionModel(cbs);
    return grid;
  }
Example #5
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;
  }
  @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 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);
  }
  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);
  }
Example #9
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;
  }
Example #10
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};
  }
  @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;
  }