Example usage for com.google.gwt.i18n.client NumberFormat getFormat

List of usage examples for com.google.gwt.i18n.client NumberFormat getFormat

Introduction

In this page you can find the example usage for com.google.gwt.i18n.client NumberFormat getFormat.

Prototype

public static NumberFormat getFormat(String pattern) 

Source Link

Document

Gets a NumberFormat instance for the default locale using the specified pattern and the default currencyCode.

Usage

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);
}