List of usage examples for com.google.gwt.i18n.client NumberFormat getFormat
public static NumberFormat getFormat(String pattern)
NumberFormat
instance for the default locale using the specified pattern and the default currencyCode. From source file:ar.com.kyol.jet.client.wrappers.HTMLWrapper.java
License:Open Source License
/** * Instantiates a new hTML wrapper./*from w w w.j av a 2 s . c o m*/ * * @param objSetter the obj setter * @param html the html */ public HTMLWrapper(ObjectSetter objSetter, HTML html) { super(false); this.objSetter = objSetter; this.html = html; if (objSetter.getValue() == null) { html.setText(""); } else { NumberFormat.setForcedLatinDigits(true); if (objSetter.getValue() instanceof Float) { NumberFormat nf = NumberFormat.getFormat(getFormat("0.00")); Float valor = (Float) objSetter.getValue(); html.setText(nf.format(valor)); } else if (objSetter.getValue() instanceof Double) { NumberFormat nf = NumberFormat.getFormat(getFormat("0.00")); Double valor = (Double) objSetter.getValue(); html.setText(nf.format(valor)); } else if (objSetter.getValue() instanceof Long) { NumberFormat nf = NumberFormat.getFormat(getFormat("0")); Long valor = (Long) objSetter.getValue(); html.setText(nf.format(valor)); } else if (objSetter.getValue() instanceof Integer) { NumberFormat nf = NumberFormat.getFormat(getFormat("0")); Integer valor = (Integer) objSetter.getValue(); html.setText(nf.format(valor)); } else if (objSetter.getValue() instanceof java.util.Date) { java.util.Date utilDate = (java.util.Date) objSetter.getValue(); html.setText(DateTimeFormat.getFormat(getFormat("dd/MM/yyyy")).format(utilDate)); } else if (objSetter.getValue() instanceof java.sql.Date) { java.sql.Date sqlDate = (java.sql.Date) objSetter.getValue(); html.setText(DateTimeFormat.getFormat(getFormat("dd/MM/yyyy")).format(sqlDate)); } else if (objSetter.getValue() instanceof Timestamp) { Timestamp ts = (Timestamp) objSetter.getValue(); html.setText(DateTimeFormat.getFormat(getFormat("dd/MM/yyyy")).format(ts)); } else { html.setText(objSetter.getValue().toString()); } } initWidget(html); }
From source file:ar.com.kyol.jet.client.wrappers.MinutesBox.java
License:Open Source License
/** * Instantiates a new minutes box./*from w w w . ja v a 2s .c o m*/ */ public MinutesBox() { super(); for (int i = 0; i < 60; i++) { this.addItem(NumberFormat.getFormat("00").format(i)); } }
From source file:ar.com.kyol.jet.client.wrappers.Wrapper.java
License:Open Source License
/** * Formats a float value with the associated objSetter.getFormat * // ww w .ja v a 2 s .c o m * @param value * @return value formatted or not, and "formatError!" if value can't be parsed to float */ protected String formatValue(String value) { String returnValue = value; if (objSetter.getFormat() != null) { try { NumberFormat formatter = NumberFormat.getFormat(objSetter.getFormat()); returnValue = formatter.format(Float.parseFloat(value)); } catch (Exception e) { log.log(Level.SEVERE, "formatter error in setter " + objSetter.getSetter() + " with format " + objSetter.getFormat()); returnValue = "formatError!"; } } return returnValue; }
From source file:ca.qc.cegepoutaouais.tge.pige.client.ui.dialog.InventoryExplorer.java
License:Open Source License
protected void setupUI() { // Configurations de la bote de dialogue. setLayout(new BorderLayout()); setModal(true);/* w w w. j a v a2s.c o m*/ setDraggable(true); setCollapsible(false); setClosable(true); setAutoHide(false); setResizable(true); setBodyStyle("padding: 3px"); setWidth(900); setHeight(600); setButtons(""); setHeadingText(messages.browseInventory()); setHideOnButtonClick(Boolean.TRUE); Button closeBtn = new Button(messages.close()); closeBtn.addSelectionListener(new SelectionListener() { @Override public void componentSelected(ComponentEvent ce) { hide(); } }); getButtonBar().add(closeBtn); final EditorMode mode = EditorMode.ReadOnly; CategoryBrowser categoryBrowser = new CategoryBrowser(mode) { @Override public void onSelectionChanged(BeanModel selection) { itemEditor.resetSearchConfigs(); FilterConfig fc = new BaseStringFilterConfig(); fc.setValue((Category) selection.getBean()); itemEditor.getLoadConfig().set("category", fc); itemEditor.load(); } }; TreeGrid treeGrid = categoryBrowser.getTreeGrid(); treeGrid.setHeight(443); treeGrid.setHideHeaders(Boolean.TRUE); treeGrid.setBorders(Boolean.TRUE); treeGrid.setAutoExpandColumn(Category.NAME_REF); itemEditor = new ItemEditor(mode) { @Override protected ColumnModel createColumnModel() { List<ColumnConfig> configs = new ArrayList<ColumnConfig>(); ColumnConfig quantityCC = new ColumnConfig(Item.QUANTITY_REF, messages.quantity(), 25); NumberFormat nf = NumberFormat.getFormat(PIGE.QUANTITY_FORMAT); quantityCC.setNumberFormat(nf); ColumnConfig nameCC = new ColumnConfig(Item.NAME_REF, messages.name(), 80); ColumnConfig modelCC = new ColumnConfig(Item.MODEL_REF, messages.model(), 50); ColumnConfig descriptionCC = new ColumnConfig(Item.DESCRIPTION_REF, messages.description(), 150); configs.add(quantityCC); configs.add(nameCC); configs.add(modelCC); configs.add(descriptionCC); return new ColumnModel(configs); } @Override protected void onGridDoubleClick() { insertItem(); InventoryExplorer.this.hide(); } @Override public Menu createContextMenu() { Menu contextMenu = super.createContextMenu(); MenuItem selectItemMenu = new MenuItem(messages.select()); selectItemMenu.addSelectionListener(new SelectionListener<MenuEvent>() { @Override public void componentSelected(MenuEvent event) { insertItem(); } }); contextMenu.insert(selectItemMenu, 1); // Juste aprs l'entte. return contextMenu; } @Override protected ToolBar createToolBar() { ToolBar tb = super.createToolBar(); Button selectItemBtn = new Button(messages.select()); selectItemBtn.addSelectionListener(new SelectionListener<ButtonEvent>() { @Override public void componentSelected(ButtonEvent event) { insertItem(); } }); tb.insert(selectItemBtn, 2); tb.insert(PigeUtil.createVerticalSeparator(), 3); return tb; } private void insertItem() { List<BeanModel> models = getSelectedItems(); if (models != null && models.size() > 0) { InventoryExplorer.this.insertItem((Item) models.get(0).getBean()); InventoryExplorer.this.hide(); } else { MessageBox.info(messages.information(), messages.noItemSelected(), null); } } }; InventorySearchBox searchBox = new InventorySearchBox(); searchBox.bind(itemEditor); ToolBar actionTB = new ToolBar(); actionTB.add(searchBox); BorderLayoutData westLD = new BorderLayoutData(LayoutRegion.WEST, 200); westLD.setMargins(new Margins(0, 3, 0, 3)); westLD.setSplit(Boolean.TRUE); BorderLayoutData centerLD = new BorderLayoutData(LayoutRegion.CENTER); setTopComponent(actionTB); add(categoryBrowser, westLD); add(itemEditor, centerLD); layout(); }
From source file:ca.qc.cegepoutaouais.tge.pige.client.ui.dialog.ItemCEVDialog.java
License:Open Source License
protected TabItem createIdentificationTab() { TabItem tab = new TabItem(messages.identification()); FormPanel formPanel = new FormPanel(); formPanel.setHeaderVisible(false);/*from w ww .java2 s .c o m*/ formPanel.setBodyBorder(false); FormData formData = new FormData("100%"); tab.add(formPanel); LayoutContainer topPanel = new LayoutContainer(); topPanel.setLayout(new ColumnLayout()); formPanel.add(topPanel, formData); LayoutContainer leftPanel = new LayoutContainer(); FormLayout formLayout = new FormLayout(); formLayout.setLabelAlign(LabelAlign.TOP); leftPanel.setLayout(formLayout); leftPanel.setStyleAttribute("padding-right", "18px"); LayoutContainer rightPanel = new LayoutContainer(); rightPanel.setStyleAttribute("padding-right", "18px"); formLayout = new FormLayout(); formLayout.setLabelAlign(LabelAlign.TOP); rightPanel.setLayout(formLayout); topPanel.add(leftPanel, new ColumnData(.5)); topPanel.add(rightPanel, new ColumnData(.5)); LayoutContainer bottomPanel = new LayoutContainer(); formLayout = new FormLayout(); formLayout.setLabelAlign(LabelAlign.TOP); bottomPanel.setLayout(formLayout); formPanel.add(bottomPanel, formData); KeyListener keyListener = new KeyListener() { @Override public void componentKeyUp(ComponentEvent event) { validate(); } }; nameTF = new TextField<String>(); nameTF.setFieldLabel(messages.name()); nameTF.addKeyListener(keyListener); nameTF.setAllowBlank(Boolean.FALSE); nameTF.setMaxLength(100); nameTF.setEmptyText(messages.requiredField()); nameTF.addKeyListener(new KeyListener() { @Override public void componentKeyUp(ComponentEvent event) { int key = event.getKeyCode(); nameAutoCompleteTimer.cancel(); if (key < 0x40 || key > 0x7E) { return; } nameAutoCompleteTimer.schedule(1000); } }); serialNumberTF = new TextField<String>(); serialNumberTF.setFieldLabel(messages.serialNumber()); serialNumberTF.setMaxLength(50); serialNumberTF.addKeyListener(keyListener); modelTF = new TextField<String>(); modelTF.setFieldLabel(messages.model()); modelTF.setMaxLength(50); modelTF.addKeyListener(keyListener); versionTF = new TextField<String>(); versionTF.setFieldLabel(messages.version()); versionTF.setMaxLength(30); versionTF.addKeyListener(keyListener); quantityNF = new NumberField(); quantityNF.setFormat(NumberFormat.getFormat(PIGE.QUANTITY_FORMAT)); quantityNF.setPropertyEditorType(Integer.class); quantityNF.setAllowBlank(Boolean.FALSE); quantityNF.setAllowDecimals(Boolean.FALSE); quantityNF.setAllowNegative(Boolean.FALSE); quantityNF.setMaxLength(9); quantityNF.setFieldLabel(messages.quantity()); quantityNF.setEmptyText(messages.requiredField()); quantityNF.addKeyListener(keyListener); locationTF = new TextField<String>(); locationTF.setFieldLabel(messages.location()); locationTF.setMaxLength(255); locationTF.setEmptyText(messages.requiredField()); locationTF.setAllowBlank(Boolean.FALSE); locationTF.addKeyListener(keyListener); statusListStore = new ListStore<ItemStatusModel>(); statusCBx = new ComboBox<ItemStatusModel>(); statusCBx.setStore(statusListStore); statusCBx.setFieldLabel(messages.status()); statusCBx.setEmptyText(messages.requiredField()); statusCBx.setAllowBlank(Boolean.FALSE); statusCBx.setForceSelection(true); statusCBx.setEditable(false); statusCBx.setDisplayField("label"); statusCBx.setTriggerAction(TriggerAction.ALL); statusCBx.addListener(Events.Select, new Listener<FieldEvent>() { @Override public void handleEvent(FieldEvent event) { validate(); } }); DateTimeFormat dtf = DateTimeFormat.getFormat(PIGE.TERM_DATE_FORMAT); creationDateDF = new DateField(); creationDateDF.setFieldLabel(messages.creationDate()); creationDateDF.setReadOnly(Boolean.TRUE); creationDateDF.setFormatValue(Boolean.TRUE); creationDateDF.getPropertyEditor().setFormat(dtf); creationDateDF.setEditable(Boolean.FALSE);//Test creationDateDF.setHideTrigger(Boolean.TRUE); receptionDateDF = new DateField(); receptionDateDF.setFieldLabel(messages.receptionDate()); receptionDateDF.setFormatValue(Boolean.TRUE); receptionDateDF.setEditable(Boolean.FALSE); receptionDateDF.getPropertyEditor().setFormat(dtf); endOfLifeDateDF = new DateField(); endOfLifeDateDF.setFieldLabel(messages.endOfLifeDate()); endOfLifeDateDF.setFormatValue(Boolean.TRUE); endOfLifeDateDF.setEditable(Boolean.FALSE); endOfLifeDateDF.getPropertyEditor().setFormat(dtf); dataSheetTA = new TextArea(); dataSheetTA.setFieldLabel(messages.dataSheets()); dataSheetTA.setHeight(40); dataSheetTA.addKeyListener(keyListener); descriptionTA = new TextArea(); descriptionTA.setFieldLabel(messages.description()); descriptionTA.setHeight(90); descriptionTA.addKeyListener(keyListener); leftPanel.add(nameTF, formData); leftPanel.add(locationTF, formData); leftPanel.add(modelTF, formData); leftPanel.add(versionTF, formData); leftPanel.add(receptionDateDF, formData); rightPanel.add(quantityNF, formData); rightPanel.add(statusCBx, formData); rightPanel.add(serialNumberTF, formData); rightPanel.add(creationDateDF, formData); rightPanel.add(endOfLifeDateDF, formData); bottomPanel.add(dataSheetTA, formData); bottomPanel.add(descriptionTA, formData); statusListStore.add(ItemStatus.getInstance().getModelList()); return tab; }
From source file:ca.qc.cegepoutaouais.tge.pige.client.ui.dialog.MaintenanceCEVDialog.java
License:Open Source License
protected TabItem createAdvancedTab() { TabItem tab = new TabItem(messages.advanced()); FormPanel formPanel = new FormPanel(); formPanel.setHeaderVisible(false);//w w w.j a v a 2 s.c o m formPanel.setBodyBorder(false); FormData formData = new FormData("100%"); tab.add(formPanel); LayoutContainer topPanel = new LayoutContainer(); topPanel.setLayout(new ColumnLayout()); formPanel.add(topPanel, formData); LayoutContainer leftPanel = new LayoutContainer(); FormLayout formLayout = new FormLayout(); formLayout.setLabelAlign(LabelAlign.LEFT); leftPanel.setLayout(formLayout); leftPanel.setStyleAttribute("padding-right", "18px"); topPanel.add(leftPanel, new ColumnData(.7)); KeyListener keyListener = new KeyListener() { @Override public void componentKeyUp(ComponentEvent event) { validate(); } }; DateTimeFormat dtf = DateTimeFormat.getFormat(PIGE.TERM_DATE_FORMAT); creationDateDF = new DateField(); creationDateDF.setFieldLabel(messages.creationDate()); creationDateDF.setReadOnly(Boolean.TRUE); creationDateDF.setFormatValue(Boolean.TRUE); creationDateDF.getPropertyEditor().setFormat(dtf); creationDateDF.setHideTrigger(Boolean.TRUE); useRecallCkBx = new CheckBox(); useRecallCkBx.setFieldLabel(messages.useRecall()); frequencyNF = new NumberField(); frequencyNF.setFormat(NumberFormat.getFormat(PIGE.QUANTITY_FORMAT)); frequencyNF.setPropertyEditorType(Integer.class); frequencyNF.setAllowBlank(Boolean.FALSE); frequencyNF.setAllowDecimals(Boolean.FALSE); frequencyNF.setAllowNegative(Boolean.FALSE); frequencyNF.setMaxLength(9); frequencyNF.setFieldLabel(messages.recallFrequency()); frequencyNF.addKeyListener(keyListener); startDateDF = new DateField(); startDateDF.setFieldLabel(messages.startDate()); startDateDF.setReadOnly(Boolean.TRUE); startDateDF.setFormatValue(Boolean.TRUE); startDateDF.getPropertyEditor().setFormat(dtf); endDateDF = new DateField(); endDateDF.setFieldLabel(messages.endDate()); endDateDF.setReadOnly(Boolean.TRUE); endDateDF.setFormatValue(Boolean.TRUE); endDateDF.getPropertyEditor().setFormat(dtf); leftPanel.add(creationDateDF, formData); leftPanel.add(startDateDF, formData); leftPanel.add(endDateDF, formData); leftPanel.add(useRecallCkBx, formData); leftPanel.add(frequencyNF, formData); return tab; }
From source file:ca.qc.cegepoutaouais.tge.pige.client.ui.view.LoanManagementView.java
License:Open Source License
@Override protected void initialize() { super.initialize(); proxy = new RpcProxy<PagingLoadResult<Loan>>() { @Override//w ww. j a v a 2s . c o m protected void load(Object loadConfig, final AsyncCallback<PagingLoadResult<Loan>> callback) { statusBar.setBusyText(messages.loading()); // Obtenir le nombre de rle demand partir du service RPC. ManagementServiceAsync rpcService = Registry.get(PIGE.MANAGEMENT_SERVICE); rpcService.getLoans((PagingLoadConfig) loadConfig, new AsyncCallback<PagingLoadResult<Loan>>() { @Override public void onSuccess(PagingLoadResult result) { statusBar.getStatus().clearStatus(messages.loadDone()); callback.onSuccess(result); } @Override public void onFailure(Throwable caught) { callback.onFailure(caught); } }); // getLoans() } // load() }; // new RpcProxy loadConfigs = new BasePagingLoadConfig(); storeLoader = new BasePagingLoader<PagingLoadResult<ModelData>>(proxy, new BeanModelReader()) { @Override protected LoadConfig newLoadConfig() { return loadConfigs; } }; storeLoader.setRemoteSort(false); loanStore = new GroupingStore<BeanModel>(storeLoader) { /** * Permet de retirer les emprunts sauvegards de la liste afficher. */ @Override protected void onLoad(LoadEvent event) { PigeUtil.filterSavedLoans(event); selectedLoans.clear();// 1.5.1 super.onLoad(event); } }; pagingTB = new PagingToolBar(PAGE_SIZE); pagingTB.bind(storeLoader); List<ColumnConfig> configs = new ArrayList<ColumnConfig>(); // 1.5.1 ColumnConfig selectorCC = new ColumnConfig(null, "", 25); selectorCC.setRenderer(new GridCellRenderer() { @Override public Object render(final ModelData model, String property, ColumnData config, int rowIndex, int colIndex, ListStore store, Grid grid) { final CheckBox cbox = new CheckBox(); cbox.addListener(Events.Change, new Listener<FieldEvent>() { @Override public void handleEvent(FieldEvent be) { BeanModel bm = (BeanModel) model; if (cbox.getValue() && !selectedLoans.contains(bm)) { selectedLoans.add(bm); } else if (!cbox.getValue()) { selectedLoans.remove(bm); } } }); BeanModel bm = (BeanModel) model; if (selectedLoans.contains(bm)) { cbox.setValue(Boolean.TRUE); } return cbox; } }); ColumnConfig ownerCC = new ColumnConfig(Loan.USER_REF, "user", 50); ColumnConfig statusCC = new ColumnConfig(Loan.STATUS_REF, messages.accepted() + " / " + messages.refused() + " / " + messages.postponed(), 150); ColumnConfig quantityCC = new ColumnConfig(Loan.QUANTITY_REF, messages.quantity(), 50); NumberFormat nf = NumberFormat.getFormat(PIGE.QUANTITY_FORMAT); quantityCC.setNumberFormat(nf); ColumnConfig descriptionCC = new ColumnConfig(Loan.DESCRIPTION_REF, messages.description(), 250); final Template descTemplate = new Template(descTemplateStr); descTemplate.compile(); descriptionCC.setRenderer(new GridCellRenderer() { @Override public Object render(ModelData model, String property, ColumnData config, int rowIndex, int colIndex, ListStore store, Grid grid) { Loan loan = (Loan) ((BeanModel) model).getBean(); Params p = new Params(); p.set("desc", model.get(property)); if (loan.getItemId() != null) { p.set("icon", "pige-icon-visible"); } else { p.set("icon", "pige-icon-hidden"); } return descTemplate.applyTemplate(p); } }); ColumnConfig startDateCC = new ColumnConfig(Loan.START_DATE_REF, messages.loanDate(), 100); DateTimeFormat dtf = DateTimeFormat.getFormat(PIGE.TERM_DATE_FORMAT); startDateCC.setDateTimeFormat(dtf); ColumnConfig termCC = new ColumnConfig(Loan.TERM_REF, messages.term(), 100); termCC.setDateTimeFormat(dtf); ColumnConfig tagCC = new ColumnConfig(Loan.TAG_REF, messages.tag(), 100); ColumnConfig noteCC = new ColumnConfig(Loan.NOTE_REF, messages.note(), 100); // 1.5.1 configs.add(selectorCC); configs.add(ownerCC); configs.add(statusCC); configs.add(quantityCC); configs.add(descriptionCC); configs.add(startDateCC); configs.add(termCC); configs.add(tagCC); configs.add(noteCC); columnModel = new ColumnModel(configs); GroupingView view = new GroupingView(); view.setShowGroupedColumn(false); view.setForceFit(true); view.setGroupRenderer(new GridGroupRenderer() { @Override public String render(GroupColumnData data) { BeanModel model = (BeanModel) loanStore.getAt(data.startRow); Loan loan = model.getBean(); User user = loan.getUser(); String id = (user.getLoanNo() != null ? user.getLoanNo() : user.getIdentifier()); return "[" + id + "] " + user.getLastname() + ", " + user.getFirstname(); } }); loanStore.setStoreSorter(new StoreSorter<BeanModel>() { @Override public int compare(Store<BeanModel> store, BeanModel m1, BeanModel m2, String property) { if (property.equals(User.LOAN_NO_REF)) { Loan l1 = m1.getBean(); Loan l2 = m2.getBean(); User u1 = l1.getUser(); User u2 = l2.getUser(); return u1.getLoanNo().compareTo(u2.getLoanNo()); } else { return super.compare(store, m1, m2, property); } } }); loanStore.groupBy(Loan.USER_REF); GridFilters filters = new GridFilters(); filters.setLocal(true); NumericFilter qtyFilter = new NumericFilter(Loan.QUANTITY_REF); StringFilter descFilter = new StringFilter(Loan.DESCRIPTION_REF); DateFilter startDateFilter = new DateFilter(Loan.START_DATE_REF); DateFilter termFilter = new DateFilter(Loan.TERM_REF); StringFilter tagFilter = new StringFilter(Loan.TAG_REF); StringFilter noteFilter = new StringFilter(Loan.NOTE_REF); filters.addFilter(qtyFilter); filters.addFilter(descFilter); filters.addFilter(startDateFilter); filters.addFilter(termFilter); filters.addFilter(tagFilter); filters.addFilter(noteFilter); grid = new EditorGrid<BeanModel>(loanStore, columnModel); grid.setView(view); grid.setLoadMask(true); grid.setBorders(false); grid.setAutoExpandColumn(Loan.DESCRIPTION_REF); grid.getView().setAutoFill(true); grid.getView().setEmptyText(messages.noLoanToShow()); grid.setTrackMouseOver(true); grid.addListener(Events.AfterEdit, new GridEditListener()); grid.addPlugin(filters); grid.setContextMenu(createContextMenu()); grid.addListener(Events.ContextMenu, new Listener<GridEvent>() { @Override public void handleEvent(GridEvent be) { selectedLoan = (BeanModel) be.getModel(); } }); toolBarPanel = new LayoutContainer(); toolBarPanel.setLayout(new RowLayout()); mainTB = new ToolBar(); secondaryTB = new ToolBar(); toolBarPanel.add(mainTB, new RowData(1, -1)); contentPanel.setLayout(new RowLayout()); contentPanel.setBottomComponent(pagingTB); RowData data = new RowData(1, -1); contentPanel.add(toolBarPanel, data); data = new RowData(1, 1); contentPanel.add(grid, data); ContentPanel panel = Registry.get(AppWidgets.APP_CONTENT_PANEL); panel.add(contentPanel); panel.layout(); searchConfigList = new ArrayList<FilterConfig>(); filterConfigList = new ArrayList<FilterConfig>(); loadConfigs.set(PIGE.SEARCH_CONFIGS, searchConfigList); loadConfigs.set(PIGE.FILTER_CONFIGS, filterConfigList); userConfigList = new ArrayList<FilterConfig>(); }
From source file:ca.qc.cegepoutaouais.tge.pige.client.ui.view.LoanManagementView.java
License:Open Source License
private void configureCellEditors(Boolean isEditable) { NumberFormat nf = NumberFormat.getFormat(PIGE.QUANTITY_FORMAT); NumberField numberFieldEditor = new NumberField(); numberFieldEditor.setPropertyEditorType(Integer.class); numberFieldEditor.setFormat(nf);/*from w w w . j a v a 2 s . com*/ numberFieldEditor.setMinValue(new Integer(0)); numberFieldEditor.setMaxLength(6); columnModel.setEditor(columnModel.getIndexById(Loan.QUANTITY_REF), isEditable ? new CellEditor(numberFieldEditor) : null); TextField<String> descriptionEditor = new TextField<String>(); descriptionEditor.setMaxLength(100); columnModel.setEditor(columnModel.getIndexById(Loan.DESCRIPTION_REF), isEditable ? new CellEditor(descriptionEditor) : null); DateTimeFormat dtf = DateTimeFormat.getFormat(PIGE.TERM_DATE_FORMAT); DateField dateField = new DateField(); dateField.setMinValue(new Date()); dateField.setEditable(false); dateField.setFormatValue(true); dateField.getPropertyEditor().setFormat(dtf); CellEditor termDateEditor = new CellEditor(dateField); columnModel.setEditor(columnModel.getIndexById(Loan.TERM_REF), isEditable ? termDateEditor : null); TextField<String> tagEditor = new TextField<String>(); tagEditor.setMaxLength(50); columnModel.setEditor(columnModel.getIndexById(Loan.TAG_REF), isEditable ? new CellEditor(tagEditor) : null); TextField<String> noteEditor = new TextField<String>(); noteEditor.setMaxLength(150); columnModel.setEditor(columnModel.getIndexById(Loan.NOTE_REF), isEditable ? new CellEditor(noteEditor) : null); LoanStatusChooser LoanStatusEditor = new LoanStatusChooser(); CellEditor editor = new CellEditor(LoanStatusEditor) { @Override public Object preProcessValue(Object value) { List<LoanStatusModel> list = LoanStatus.getInstance().getModelList(); for (LoanStatusModel model : list) { if (model.getValue().equals(value)) { return model; } } return null; } @Override public Object postProcessValue(Object value) { LoanStatusModel model = (LoanStatusModel) value; return model.getValue(); } }; columnModel.setEditor(columnModel.getIndexById(Loan.STATUS_REF), isEditable ? editor : null); }
From source file:ca.qc.cegepoutaouais.tge.pige.client.ui.view.LoanManagementView.java
License:Open Source License
protected void configureBatchEditMenu(Menu menu, final Menu rootMenu) { MenuItem statusEditMenuItem = new MenuItem(messages.status()); MenuItem quantityEditMenuItem = new MenuItem(messages.quantity()); MenuItem descriptionEditMenuItem = new MenuItem(messages.description()); MenuItem dueDateEditMenuItem = new MenuItem(messages.term()); MenuItem tagEditMenuItem = new MenuItem(messages.tag()); MenuItem noteEditMenuItem = new MenuItem(messages.note()); menu.add(quantityEditMenuItem);//from ww w .j a va2 s . co m // Doit seulement tre visible dans la vue Recherche. if (getViewTitle().equals(messages.search())) { menu.add(statusEditMenuItem); } menu.add(descriptionEditMenuItem); menu.add(dueDateEditMenuItem); menu.add(tagEditMenuItem); menu.add(noteEditMenuItem); menu.add(createClearSelectedLoansMenuItem()); // Proprit quantit. NumberField quantityNF = new NumberField(); quantityNF.setFormat(NumberFormat.getFormat(PIGE.QUANTITY_FORMAT)); quantityNF.setPropertyEditorType(Integer.class); quantityNF.setAllowDecimals(Boolean.FALSE); quantityNF.setAllowNegative(Boolean.FALSE); quantityNF.setMaxLength(9); quantityNF.addListener(Events.KeyUp, new FieldListener(rootMenu, new FieldUpdater(Loan.QUANTITY_REF, quantityNF))); AdapterMenuItem quantityTFMenuAdapter = new AdapterMenuItem(quantityNF); quantityTFMenuAdapter.setManageFocus(true); quantityTFMenuAdapter.setCanActivate(true); Menu quantityEditMenu = new Menu(); quantityEditMenu.add(quantityTFMenuAdapter); quantityEditMenuItem.setSubMenu(quantityEditMenu); // Proprit tat ListStore statusListStore = new ListStore<LoanStatusModel>(); statusListStore.add(LoanStatus.getInstance().getModelList()); ComboBox statusCBx = new ComboBox<LoanStatusModel>(); statusCBx.setStore(statusListStore); statusCBx.setForceSelection(true); statusCBx.setEditable(false); statusCBx.setDisplayField("label"); statusCBx.setTriggerAction(TriggerAction.ALL); statusCBx.addListener(Events.Select, new FieldListener(rootMenu, new FieldUpdater(Loan.STATUS_REF, statusCBx))); AdapterMenuItem statusTFMenuAdapter = new AdapterMenuItem(statusCBx); statusTFMenuAdapter.setManageFocus(true); statusTFMenuAdapter.setCanActivate(true); Menu statusEditMenu = new Menu(); statusEditMenu.add(statusTFMenuAdapter); statusEditMenuItem.setSubMenu(statusEditMenu); // Proprit description. final TextField descriptionTF = new TextField<String>(); descriptionTF.addListener(Events.KeyUp, new FieldListener(rootMenu, new FieldUpdater(Loan.DESCRIPTION_REF, descriptionTF))); AdapterMenuItem descriptionTFMenuAdapter = new AdapterMenuItem(descriptionTF); descriptionTFMenuAdapter.setManageFocus(true); descriptionTFMenuAdapter.setCanActivate(true); Menu descriptionEditMenu = new Menu(); descriptionEditMenu.add(descriptionTFMenuAdapter); descriptionEditMenuItem.setSubMenu(descriptionEditMenu); // Proprit chance. DateTimeFormat dtf = DateTimeFormat.getFormat(PIGE.TERM_DATE_FORMAT); final DateField dateField = new DateField(); dateField.setMinValue(new Date()); dateField.setEditable(false); dateField.setFormatValue(true); dateField.getPropertyEditor().setFormat(dtf); dateField.getDatePicker().addListener(Events.Select, new FieldListener(rootMenu, new FieldUpdater(Loan.TERM_REF, dateField))); AdapterMenuItem dueDateTFMenuAdapter = new AdapterMenuItem(dateField); dueDateTFMenuAdapter.setManageFocus(true); dueDateTFMenuAdapter.setCanActivate(true); Menu dueDateEditMenu = new Menu(); dueDateEditMenu.add(dueDateTFMenuAdapter); dueDateEditMenuItem.setSubMenu(dueDateEditMenu); // Proprit libell. final TextField tagTF = new TextField<String>(); tagTF.addListener(Events.KeyUp, new FieldListener(rootMenu, new FieldUpdater(Loan.TAG_REF, tagTF))); AdapterMenuItem tagTFMenuAdapter = new AdapterMenuItem(tagTF); tagTFMenuAdapter.setManageFocus(true); tagTFMenuAdapter.setCanActivate(true); Menu tagEditMenu = new Menu(); tagEditMenu.add(tagTFMenuAdapter); tagEditMenuItem.setSubMenu(tagEditMenu); // Proprit note. final TextField noteTF = new TextField<String>(); noteTF.addListener(Events.KeyUp, new FieldListener(rootMenu, new FieldUpdater(Loan.NOTE_REF, noteTF))); AdapterMenuItem noteTFMenuAdapter = new AdapterMenuItem(noteTF); noteTFMenuAdapter.setManageFocus(true); noteTFMenuAdapter.setCanActivate(true); Menu noteEditMenu = new Menu(); noteEditMenu.add(noteTFMenuAdapter); noteEditMenuItem.setSubMenu(noteEditMenu); }
From source file:ca.qc.cegepoutaouais.tge.pige.client.ui.view.NewLoanView.java
License:Open Source License
@Override protected void initialize() { super.initialize(); proxy = new RpcProxy<PagingLoadResult<UserDetail>>() { @Override/*from w ww . j a v a 2 s.c o m*/ protected void load(Object loadConfig, final AsyncCallback<PagingLoadResult<UserDetail>> callback) { statusBar.setBusyText(messages.loading()); UserServiceAsync rpcService = Registry.get(PIGE.USER_SERVICE); rpcService.getAllLoan((PagingLoadConfig) loadConfig, new AsyncCallback<PagingLoadResult<Loan>>() { @Override public void onSuccess(PagingLoadResult result) { statusBar.getStatus().clearStatus(messages.loadDone()); callback.onSuccess(result); } @Override public void onFailure(Throwable caught) { callback.onFailure(caught); } }); } }; loadConfig = new BaseFilterPagingLoadConfig(); loader = new BasePagingLoader<PagingLoadResult<ModelData>>(proxy, new BeanModelReader()) { @Override protected LoadConfig newLoadConfig() { return loadConfig; } }; loader.setRemoteSort(false); loanStore = new ListStore<BeanModel>(loader); pagingTB = new PagingToolBar(PAGE_SIZE); pagingTB.bind(loader); /* * TODO: * * VOIR LES MTHODES DES CELLEDITORS POUR AMLIORER LE COMPORTEMENT * DU ROWEDITOR. EX.: setCompleteEditOnEnter... */ // Note: Les CellEditors ne gnrent pas d'vnement de type EditorEvent // moins d'tre utiliss dans un EditorGrid. List<ColumnConfig> configs = new ArrayList<ColumnConfig>(); ColumnConfig quantityCC = new ColumnConfig(Loan.QUANTITY_REF, messages.quantity(), 50); NumberFormat nf = NumberFormat.getFormat(PIGE.QUANTITY_FORMAT); quantityCC.setNumberFormat(nf); NumberField numberField = new NumberField(); numberField.setPropertyEditorType(Integer.class); numberField.setFormat(nf); numberField.setMinValue(new Integer(0)); numberField.setAllowDecimals(Boolean.FALSE); numberField.setAllowNegative(Boolean.FALSE); numberField.setMaxLength(6); quantityCC.setEditor(new CellEditor(numberField)); ; ColumnConfig descriptionCC = new ColumnConfig(Loan.DESCRIPTION_REF, messages.description(), 300); itemSelectorField.setAllowBlank(Boolean.FALSE); CellEditor descCCEditor = new CellEditor(itemSelectorField); descriptionCC.setEditor(descCCEditor); final Template descTemplate = new Template(descTemplateStr); descTemplate.compile(); descriptionCC.setRenderer(new GridCellRenderer() { @Override public Object render(ModelData model, String property, ColumnData config, int rowIndex, int colIndex, ListStore store, Grid grid) { Loan loan = (Loan) ((BeanModel) model).getBean(); Params p = new Params(); p.set("desc", model.get(property)); if (loan.getItemId() != null) { p.set("icon", "pige-icon-visible"); } else { p.set("icon", "pige-icon-hidden"); } return descTemplate.applyTemplate(p); } }); ColumnConfig termCC = new ColumnConfig(Loan.TERM_REF, messages.term(), 100); DateTimeFormat dtf = DateTimeFormat.getFormat(PIGE.TERM_DATE_FORMAT); termCC.setDateTimeFormat(dtf); DateField dateField = new DateField(); dateField.setMinValue(new Date()); dateField.setEditable(false); dateField.setFormatValue(true); dateField.getPropertyEditor().setFormat(dtf); termCC.setEditor(new CellEditor(dateField)); ColumnConfig tagCC = new ColumnConfig(Loan.TAG_REF, messages.tag(), 100); tagCbox.setTriggerAction(TriggerAction.ALL); tagCbox.setAllowBlank(Boolean.FALSE); tagCbox.setForceSelection(Boolean.FALSE); tagCbox.setEditable(Boolean.TRUE); CellEditor tagCellEditor = new CellEditor(tagCbox) { @Override public Object preProcessValue(Object value) { if (value == null) { return value; } ModelData model = tagCbox.findModel(value.toString()); if (model != null) { return model; } return new SimpleComboValueWrapper((String) value); } @Override public Object postProcessValue(Object value) { return tagCbox.getRawValue(); } }; tagCC.setEditor(tagCellEditor); configs.add(quantityCC); configs.add(descriptionCC); configs.add(termCC); configs.add(tagCC); ColumnModel cm = new ColumnModel(configs); final RowEditor<BeanModel> rowEditor = new RowEditor<BeanModel>() { @Override protected void createButtons() { super.createButtons(); saveBtn.setText(BaseView.messages.ok()); } // 1.5.0 // Empcher que l'diteur soit fermer accidentellement lorsque // l'utilisateur appuie sur la touche "Entre" dans un des champs... // Continuer l'action que si tous les champs requis sont valides. @Override protected void onEnter(ComponentEvent ce) { if (isValid()) { super.onEnter(ce); } } }; rowEditor.setClicksToEdit(ClicksToEdit.TWO); rowEditor.addListener(Events.AfterEdit, new Listener<RowEditorEvent>() { @Override public void handleEvent(RowEditorEvent event) { BeanModel model = loanStore.getAt(event.getRowIndex());//1.4.0 if (model != null) { setLoanItem(model); model.set(NEW_TAG_FLAG, Boolean.FALSE.toString()); loanStore.update(model); } } }); rowEditor.addListener(Events.CancelEdit, new Listener<RowEditorEvent>() { @Override public void handleEvent(RowEditorEvent event) { BeanModel model = loanStore.getAt(event.getRowIndex()); //1.4.0 if (model != null) { Boolean isNew = Boolean .parseBoolean((String) model.get(NEW_TAG_FLAG, Boolean.FALSE.toString())); if (isNew) { loanStore.remove(0); } } } }); // Permet de ractiver la barre de menu lorsque l'usager est en train // d'diter une range et qu'il appuie sur "Entr" ou "chap" pour // fermer l'diteur. Listener editorListener = new Listener<ComponentEvent>() { @Override public void handleEvent(ComponentEvent event) { actionTB.setEnabled(Boolean.TRUE); } }; Listener editorListener2 = new Listener<ComponentEvent>() { @Override public void handleEvent(ComponentEvent event) { actionTB.setEnabled(Boolean.FALSE); } }; rowEditor.addListener(Events.Hide, editorListener); rowEditor.addListener(Events.Show, editorListener2); grid = new Grid<BeanModel>(loanStore, cm); grid.setLoadMask(Boolean.FALSE); grid.setBorders(Boolean.FALSE); grid.setAutoExpandColumn(Loan.DESCRIPTION_REF); grid.getView().setAutoFill(Boolean.TRUE); grid.addPlugin(rowEditor); grid.setContextMenu(createContextMenu()); grid.getSelectionModel().addSelectionChangedListener(new SelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent event) { selectedLoans = event.getSelection(); } }); addLoanBtn = new Button(messages.addLoan()); addLoanBtn.setIcon(AbstractImagePrototype.create(Resources.INSTANCE.addLoanIcon())); addLoanBtn.addSelectionListener(new SelectionListener<ButtonEvent>() { @Override public void componentSelected(ButtonEvent event) { Loan loan = new Loan(); loan.setQuantity(1); loan.setDescription(messages.description()); loan.setStartDate(new Date()); loan.setTerm(new Date());// La mme journe! loan.setStatus(LoanStatus.STATUS_PENDING); BeanModelFactory factory = BeanModelLookup.get().getFactory(Loan.class); BeanModel bm = factory.createModel(loan); bm.set(NEW_TAG_FLAG, Boolean.TRUE.toString()); //setLastCreatedLoan(bm); rowEditor.stopEditing(false); loanStore.insert(bm, 0); rowEditor.startEditing(loanStore.indexOf(bm), true); ColumnConfig cf = grid.getColumnModel().getColumnById(Loan.DESCRIPTION_REF); ItemSelectorField isf = (ItemSelectorField) cf.getEditor().getField(); isf.clear(); // Patch pour le bug #009 actionTB.setEnabled(Boolean.FALSE); } }); Button deleteLoanBtn = new Button(messages.deleteLoan()); deleteLoanBtn.setIcon(AbstractImagePrototype.create(Resources.INSTANCE.removeLoanIcon())); deleteLoanBtn.addSelectionListener(new SelectionListener<ButtonEvent>() { @Override public void componentSelected(ButtonEvent event) { if (!validateLoanSelection()) { return; } List<Loan> loans = new ArrayList(); for (int i = 0; i < selectedLoans.size(); ++i) { Loan l = (Loan) selectedLoans.get(i).getBean(); if (l.getStatus().equals(LoanStatus.STATUS_SAVED)) { loans.add(l); } } deleteSavedLoans(loans); for (BeanModel bm : selectedLoans) { loanStore.remove(bm); } } }); Button submitLoanRequest = new Button(messages.submitRequest()); submitLoanRequest.setIcon(AbstractImagePrototype.create(Resources.INSTANCE.loansApprovalIcon())); submitLoanRequest.addSelectionListener(new SelectionListener<ButtonEvent>() { @Override public void componentSelected(ButtonEvent ce) { Set lr = buildLoanRequest(Boolean.FALSE); if (lr != null) { submitLoanRequest(lr, Boolean.FALSE); resetLoanRequest(); } } }); Button resetLoanRequest = new Button(messages.clearAll()); resetLoanRequest.setIcon(AbstractImagePrototype.create(Resources.INSTANCE.emptyLoanIcon())); resetLoanRequest.addSelectionListener(new SelectionListener<ButtonEvent>() { @Override public void componentSelected(ButtonEvent ce) { List<Loan> loans = new ArrayList(); for (int i = 0; i < loanStore.getCount(); ++i) { Loan l = (Loan) loanStore.getAt(i).getBean(); if (l.getStatus().equals(LoanStatus.STATUS_SAVED)) { loans.add(l); } } deleteSavedLoans(loans); resetLoanRequest(); } }); saveLoanRequestBtn = new Button(messages.saveLoanRequest()); saveLoanRequestBtn.setIcon(AbstractImagePrototype.create(Resources.INSTANCE.saveIcon())); saveLoanRequestBtn.addSelectionListener(new SelectionListener<ButtonEvent>() { @Override public void componentSelected(ButtonEvent ce) { Set lr = buildLoanRequest(Boolean.TRUE); if (lr != null) { submitLoanRequest(lr, Boolean.TRUE); } } }); actionTB.add(addLoanBtn); actionTB.add(PigeUtil.createVerticalSeparator()); actionTB.add(deleteLoanBtn); actionTB.add(PigeUtil.createVerticalSeparator()); actionTB.add(submitLoanRequest); actionTB.add(PigeUtil.createVerticalSeparator()); actionTB.add(saveLoanRequestBtn); actionTB.add(PigeUtil.createVerticalSeparator()); actionTB.add(resetLoanRequest); actionTB.add(PigeUtil.createVerticalSeparator()); contentPanel.setTopComponent(actionTB); contentPanel.setBottomComponent(pagingTB);// 1.2 BorderLayoutData data = new BorderLayoutData(LayoutRegion.NORTH, 1); contentPanel.add(grid, data); ContentPanel panel = Registry.get(AppWidgets.APP_CONTENT_PANEL); panel.add(contentPanel); panel.layout(); List<FilterConfig> filterConfigList = new ArrayList<FilterConfig>(); loadConfig.set(PIGE.FILTER_CONFIGS, filterConfigList); FilterConfig fc = new BaseStringFilterConfig(); fc.setField(Loan.STATUS_REF); fc.setValue(LoanStatus.STATUS_SAVED); filterConfigList.add(fc); }