Package info.jtrac.domain

Examples of info.jtrac.domain.Field


     * @param isEditMode
     */
    private void addComponents(final BoundCompoundPropertyModel model, List<Field> fields, final boolean isEditMode) {
        ListView listView = new ListView("fields", fields) {
            protected void populateItem(ListItem listItem) {
                final Field field = (Field) listItem.getModelObject();
                boolean isRequired = isEditMode ? false : !field.isOptional();
                listItem.add(new Label("label", field.getLabel()));
                listItem.add(new Label("star", isRequired ? "*" : "&nbsp;").setEscapeModelStrings(false));
                if (field.isDropDownType()) {
                    Fragment f = new Fragment("field", "dropDown", CustomFieldsFormPanel.this);
                    final Map<String, String> options = field.getOptions();
                    List<String> keys; // bound value
                    if (options != null) {
                        keys = new ArrayList(options.keySet());
                    } else {
                        keys = new ArrayList<String>();
                    }
                    DropDownChoice choice = new DropDownChoice("field", keys, new IChoiceRenderer() {
                        public Object getDisplayValue(Object o) {
                            return options.get(o);
                        };
                       
                        public String getIdValue(Object o, int i) {
                            return o.toString();
                        };
                    });
                    choice.setNullValid(true);
                    choice.setLabel(new Model(field.getLabel()));
                    choice.setRequired(isRequired);
                    WebMarkupContainer border = new WebMarkupContainer("border");
                    f.add(border);
                    border.add(new ErrorHighlighter(choice));
                    border.add(model.bind(choice, field.getName().getText()));
                    listItem.add(f);
                } else if (field.isDatePickerType()) {
                    /*
                     * ======================================
                     * Date picker
                     * ======================================
                     */
                    YuiCalendar calendar = new YuiCalendar("field",
                            new PropertyModel(model, field.getName().getText()), isRequired);
                    listItem.add(calendar);
                    calendar.setLabel(new Model(field.getLabel()));
                } else {
                    /*
                     * ======================================
                     * Text field
                     * ======================================
                     */
                    Fragment f = new Fragment("field", "textField", CustomFieldsFormPanel.this);
                    TextField textField = new TextField("field");
                   
                    /*
                     * Check if the field is used to display/edit
                     * Double values.
                     */
                    if (field.isDecimalNumberType()) {
                        /*
                         * The following code overwrites the default
                         * DoubleConverter used by Wicket (getConverter(Class)).
                         * The original implementation rounds after three
                         * digits to the right of the decimal point.
                         *
                         * As there are requirements to show six digits to
                         * the right of the decimal point the NumberFormat
                         * is enhanced in the code below by the DecimalFormat
                         * class. That has been used because the DecimalFormat
                         * class supports a formatting pattern which allows
                         * to use the digits to the right only if really
                         * needed (currently limited to six digits to the
                         * right of the decimal point).
                         */
                        textField = new TextField("field", Double.class) {
                            public org.apache.wicket.util.convert.IConverter getConverter(Class type) {
                                DoubleConverter converter = (DoubleConverter) DoubleConverter.INSTANCE;
                                java.text.NumberFormat numberFormat = converter.getNumberFormat(getLocale());
                                java.text.DecimalFormat decimalFormat = (java.text.DecimalFormat)numberFormat;
                                decimalFormat.applyPattern("###,##0.######");
                                converter.setNumberFormat(getLocale(), decimalFormat);
                                return converter;
                            };
                        };
                    }
                   
                    textField.add(new ErrorHighlighter());
                    textField.setRequired(isRequired);
                    textField.setLabel(new Model(field.getLabel()));
                    f.add(model.bind(textField, field.getName().getText()));
                    listItem.add(f);
                }
            }
        };
        listView.setReuseItems(true);
View Full Code Here


           
            final SimpleAttributeModifier sam = new SimpleAttributeModifier("class", "alt");
           
            ListView listView = new ListView("fields", space.getMetadata().getFieldList()) {
                protected void populateItem(ListItem listItem) {
                    final Field field = (Field) listItem.getModelObject();
                   
                    if (field.getName().getText().equals(selectedFieldName)) {
                        listItem.add(new SimpleAttributeModifier("class", "selected"));
                    } else if(listItem.getIndex() % 2 == 1) {
                        listItem.add(sam);
                    }                    
                   
                    listItem.add(new Button("up") {
                        @Override
                        public void onSubmit() {   
                            List<Field.Name> fieldOrder = space.getMetadata().getFieldOrder();
                            int index = fieldOrder.indexOf(field.getName());
                            int swapIndex = index - 1;
                            if (swapIndex < 0) {
                                if (fieldOrder.size() > 1) {       
                                    swapIndex = fieldOrder.size() - 1;
                                } else {
                                    swapIndex = 0;
                                }
                            }
                            if (index != swapIndex) {
                                Collections.swap(fieldOrder, index, swapIndex);
                                setResponsePage(new SpaceFieldListPage(space, field.getName().getText(), previous));
                            }                           
                        }                   
                    });
                   
                    listItem.add(new Button("down") {
                        @Override
                        public void onSubmit() { 
                            List<Field.Name> fieldOrder = space.getMetadata().getFieldOrder();
                            int index = fieldOrder.indexOf(field.getName());
                            int swapIndex = index + 1;
                            if (swapIndex == fieldOrder.size()) {
                                swapIndex = 0;
                            }
                            if (index != swapIndex) {
                                Collections.swap(fieldOrder, index, swapIndex);
                                setResponsePage(new SpaceFieldListPage(space, field.getName().getText(), previous));
                            }                           
                        }                       
                    });
                   
                    listItem.add(new Label("name", new PropertyModel(field, "name.text")));
                    listItem.add(new Label("type", new PropertyModel(field, "name.description")));                   
                    listItem.add(new Label("label", new PropertyModel(field, "label")));
                    List<String> optionsList;
                    if(field.getOptions() != null) {
                        optionsList = new ArrayList(field.getOptions().values());
                    } else {
                        optionsList = new ArrayList(0);
                    }
                    ListView options = new ListView("options", optionsList) {
                        protected void populateItem(ListItem item) {
                            item.add(new Label("option", item.getModelObject() + ""));
                        }                       
                    };
                    listItem.add(options);
                    listItem.add(new Button("edit") {
                        @Override
                        public void onSubmit() {
                            Field f = field.getClone();
                            setResponsePage(new SpaceFieldFormPage(space, f, previous));
                        }                       
                    });
                }               
            };           
            add(listView);
           
            final Map<String, String> types = space.getMetadata().getAvailableFieldTypes();
            List<String> typesList = new ArrayList(types.keySet());   
            // pre-select the drop down for convenience
            if(typesList.size() > 0) {
                type = typesList.get(0);
            }            
           
            DropDownChoice choice = new DropDownChoice("type", typesList, new IChoiceRenderer() {
                public Object getDisplayValue(Object o) {
                    return localize("space_fields.type_" + o) + " - " + localize("space_fields.typeRemaining", types.get(o));
                }
                public String getIdValue(Object o, int i) {
                    return o.toString();
                }
            });        
           
            add(choice);                     
           
            add(new Button("add") {
                @Override
                public void onSubmit() {                   
                    if(type == null) {
                        return;
                    }                   
                    Field field = space.getMetadata().getNextAvailableField(Integer.parseInt(type));
                    field.initOptions();
                    setResponsePage(new SpaceFieldFormPage(space, field, previous));         
                }                
            });                     
           
            add(new Button("back") {
View Full Code Here

                }
            });
            // fields col headings =============================================
            add(new ListView("fieldHeads", fields) {
                protected void populateItem(ListItem listItem) {
                    Field f = (Field) listItem.getModelObject();
                    listItem.add(new Label("field", f.getLabel()));
                }
            });
            // rows init =======================================================
            List<Integer> stateKeys = new ArrayList(statesMap.keySet());
            final List<Role> roles = new ArrayList(space.getMetadata().getRoleList());
            final SimpleAttributeModifier rowspan = new SimpleAttributeModifier("rowspan", roles.size() + "");
            final SimpleAttributeModifier yes = new SimpleAttributeModifier("src", "../resources/status-green.gif");
            final SimpleAttributeModifier no = new SimpleAttributeModifier("src", "../resources/status-grey.gif");           
            final SimpleAttributeModifier readonly = new SimpleAttributeModifier("src", "../resources/field-readonly.gif");
            final SimpleAttributeModifier mandatory = new SimpleAttributeModifier("src", "../resources/field-mandatory.gif");           
            final SimpleAttributeModifier optional = new SimpleAttributeModifier("src", "../resources/field-optional.gif");
            final SimpleAttributeModifier hidden = new SimpleAttributeModifier("src", "../resources/field-hidden.gif");
            final SimpleAttributeModifier altClass = new SimpleAttributeModifier("class", "alt");
            //==================================================================
            add(new ListView("states", stateKeys) {              
                protected void populateItem(ListItem listItem) {
                    final boolean firstState = listItem.getIndex() == 0;
                    final String stateClass = listItem.getIndex() % 2 == 1 ? "bdr-bottom alt" : "bdr-bottom";
                    final Integer stateKeyRow = (Integer) listItem.getModelObject();
                    listItem.add(new ListView("roles", roles) {
                        protected void populateItem(ListItem listItem) {
                            String roleClass = listItem.getIndex() % 2 == 1 ? " alt" : "";
                            String lastRole = listItem.getIndex() == roles.size() - 1 ? " bdr-bottom" : "";
                            listItem.add(new SimpleAttributeModifier("class", "center" + roleClass + lastRole));                           
                            final Role role = (Role) listItem.getModelObject();
                            if(listItem.getIndex() == 0) {
                                SimpleAttributeModifier rowClass = new SimpleAttributeModifier("class", stateClass);
                                listItem.add(new Label("state", statesMap.get(stateKeyRow)).add(rowspan).add(rowClass));
                                WebMarkupContainer editState = new WebMarkupContainer("editState");
                                editState.add(rowspan).add(rowClass);
                                Button editStateButton = new Button("editState") {
                                    @Override
                                    public void onSubmit() {
                                        setResponsePage(new SpaceStatePage(space, stateKeyRow, previous));
                                    }                                   
                                };
                                editState.add(editStateButton);
                                if(stateKeyRow == State.NEW) { // user can customize state names, even for Closed
                                    editStateButton.setVisible(false);
                                }
                                listItem.add(editState);
                            } else {
                                listItem.add(new WebMarkupContainer("state").setVisible(false));
                                listItem.add(new WebMarkupContainer("editState").setVisible(false));
                            }
                            listItem.add(new Label("role", role.getName()));
                            Button editRoleButton = new Button("editRole") {
                                @Override
                                public void onSubmit() {
                                    setResponsePage(new SpaceRolePage(space, role.getName(), previous));
                                }                               
                            };
                            listItem.add(editRoleButton);
                            if(!firstState) {
                                editRoleButton.setVisible(false);
                            }
                            listItem.add(new ListView("stateHeads", stateKeysNoNew) {
                                protected void populateItem(ListItem listItem) {
                                    final Integer stateKeyCol = (Integer) listItem.getModelObject();
                                    Button stateButton = new Button("state") {
                                        @Override
                                        public void onSubmit() {
                                            space.getMetadata().toggleTransition(role.getName(), stateKeyRow, stateKeyCol);
                                            setResponsePage(new SpacePermissionsPage(space, previous));
                                        }                                         
                                    };
                                    if(stateKeyRow == State.NEW && stateKeyCol != State.OPEN) {
                                        stateButton.setVisible(false);
                                    }
                                    State state = role.getStates().get(stateKeyRow);
                                    if(state != null && state.getTransitions().contains(stateKeyCol)) {
                                        stateButton.add(yes);                                       
                                    } else {
                                        stateButton.add(no);
                                    }
                                    listItem.add(stateButton);                                   
                                }                               
                            });
                            listItem.add(new ListView("fieldHeads", fields) {
                                protected void populateItem(ListItem listItem) {
                                    if(roles.size() == 1 && listItem.getIndex() % 2 == 0) {
                                        listItem.add(altClass);
                                    }
                                    final Field field = (Field) listItem.getModelObject();
                                    Button fieldButton = new Button("field") {
                                        @Override
                                        public void onSubmit() {
                                            space.getMetadata().switchMask(stateKeyRow, role.getName(), field.getName().getText());
                                            setResponsePage(new SpacePermissionsPage(space, previous));
                                        }                                         
                                    };
                                    State state = role.getStates().get(stateKeyRow);                                   
                                    int mask = state.getFields().get(field.getName());
                                    switch(mask) {
                                        case State.MASK_MANDATORY : fieldButton.add(mandatory); break;
                                        case State.MASK_OPTIONAL : fieldButton.add(optional); break;
                                        case State.MASK_READONLY : fieldButton.add(readonly); break;
                                        case State.MASK_HIDDEN : fieldButton.add(hidden); break;
View Full Code Here

TOP

Related Classes of info.jtrac.domain.Field

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.