protected SelectListParameter<GenomicIntervalTypeEnum> createIntervalTypeParameter() { OptionList<GenomicIntervalTypeEnum> options = new OptionList<GenomicIntervalTypeEnum>(); options.addOption( GenomicIntervalTypeEnum.GENE_NAME.getValue(), GenomicIntervalTypeEnum.GENE_NAME); options.addOption( GenomicIntervalTypeEnum.CHROMOSOME_COORDINATES.getValue(), GenomicIntervalTypeEnum.CHROMOSOME_COORDINATES); ValueSelectedHandler<GenomicIntervalTypeEnum> handler = new ValueSelectedHandler<GenomicIntervalTypeEnum>() { @Override public void valueSelected(GenomicIntervalTypeEnum value) { criterion.setGenomicIntervalType(value); setIntervalParameters(); } }; SelectListParameter<GenomicIntervalTypeEnum> intervalTypeParameter = new SelectListParameter<GenomicIntervalTypeEnum>( getParameters().size(), getRow().getRowIndex(), options, handler, criterion.getGenomicIntervalType()); intervalTypeParameter.setLabel("Genome Interval"); intervalTypeParameter.setUpdateFormOnChange(true); return intervalTypeParameter; }
/** * Store nv list to hash map. * * @param filename the filename * @param options the options * @param dstMap the dst map */ public static void storeNVListToHashMap( String filename, OptionList options, Map<String, String> dstMap) { if (options == null || options.getOption() == null || options.getOption().isEmpty()) { return; } List<NameValue> optionNvList = options.getOption(); for (int i = 0; i < optionNvList.size(); i++) { NameValue nv = optionNvList.get(i); dstMap.put(nv.getName(), nv.getValue()); } }
/** * Gets the option list. * * @param filename the filename * @param parent the parent * @param childName the child name * @return the option list * @throws Exception the exception */ public static OptionList getOptionList(String filename, Element parent, String childName) throws Exception { if (parent == null) { return null; } OptionList result = new OptionList(); Element optionContainer = DomParseUtil.getSingleElement(filename, parent, childName); if (optionContainer == null) { return null; } List<NameValue> outList = result.getOption(); putNVList(filename, childName, optionContainer, outList); return result; }
public void draw() { JPanel current = new JPanel(new GridLayout(0, 1)); for (final Score s : this.scores) { JPanel pane = new JPanel(new FlowLayout()); pane.add(new JLabel("|" + s.name + "|Type:" + s.type + "|DefaultValue:" + s.defVal + "|")); JButton remove = new JButton("Remove!"); remove.setAction( new Action() { @Override public void actionPerformed(ActionEvent arg0) { delScore(s); draw(); } @Override public void addPropertyChangeListener(PropertyChangeListener arg0) {} @Override public Object getValue(String arg0) { return null; } @Override public boolean isEnabled() { return true; } @Override public void putValue(String arg0, Object arg1) {} @Override public void removePropertyChangeListener(PropertyChangeListener arg0) {} @Override public void setEnabled(boolean arg0) {} }); remove.setText("remove!"); pane.add(remove); current.add(pane); } final JTextField name = new JTextField(16); final OptionList type = new OptionList(this.window); ArrayList<String> types = new ArrayList<String>(); for (ScoreType v : ScoreType.values()) { types.add(v.toString().toLowerCase()); } type.setVals(types); type.draw(); type.setSelectedItem("string"); final JPanel val = new JPanel(new FlowLayout()); type.setAction( new Action() { @Override public void actionPerformed(ActionEvent arg0) { // change the value object accordingly OptionList type = (OptionList) arg0.getSource(); String ty = (String) type.getSelectedItem(); Component value = new JTextField(16); if (ty.equalsIgnoreCase("boolean")) { value = new OptionList(window); ArrayList<String> vals = new ArrayList<String>(); vals.add("true"); vals.add("false"); ((OptionList) value).setVals(vals); ((OptionList) value).draw(); value.setName("value"); } else if (ty.equalsIgnoreCase("string")) { value = new JTextField(16); ((JTextComponent) value).setEditable(true); value.setName("value"); } else if (ty.equalsIgnoreCase("num")) { value = new JTextField(16); ((JTextComponent) value).setEditable(true); value.setName("valuet:num"); } else if (ty.equalsIgnoreCase("int")) { value = new JTextField(16); ((JTextComponent) value).setEditable(true); value.setName("valuet:int"); } val.removeAll(); val.add(value); window.refresh(); } @Override public void addPropertyChangeListener(PropertyChangeListener arg0) {} @Override public Object getValue(String arg0) { return null; } @Override public boolean isEnabled() { return true; } @Override public void putValue(String arg0, Object arg1) {} @Override public void removePropertyChangeListener(PropertyChangeListener arg0) {} @Override public void setEnabled(boolean arg0) {} }); JTextField value = new JTextField(16); value.setName("value"); value.setEditable(true); val.add(value); JPanel newS = new JPanel(new FlowLayout()); newS.add(new JLabel("Name:")); newS.add(name); type.draw(); newS.add(new JLabel("Type:")); newS.add(type); type.setSelectedItem("string"); newS.add(new JLabel("Default Value")); newS.add(val); JButton add = new JButton("Add!"); add.setName("Add!"); add.setAction( new Action() { @Override public void actionPerformed(ActionEvent arg0) { // add it ScoreType ty = ScoreType.STRING; String t = (String) type.getSelectedItem(); if (t.equalsIgnoreCase("boolean")) { ty = ScoreType.BOOLEAN; } else if (t.equalsIgnoreCase("string")) { ty = ScoreType.STRING; } else if (t.equalsIgnoreCase("int")) { ty = ScoreType.INT; } else if (t.equalsIgnoreCase("num")) { ty = ScoreType.NUM; } Component[] comps = val.getComponents(); Object value = null; for (Component comp : comps) { if (comp.getName().toLowerCase().contains("value")) { if (comp instanceof JTextField && comp.getName().toLowerCase().contains("t:num")) { try { value = Double.parseDouble(((JTextField) comp).getText()); } catch (NumberFormatException e) { window.popUpMsg("Score value must be a number", "ERROR"); return; } } if (comp instanceof JTextField && comp.getName().toLowerCase().contains("t:int")) { try { value = Integer.parseInt(((JTextField) comp).getText()); } catch (NumberFormatException e) { window.popUpMsg("Score value must be an integer", "ERROR"); return; } } if (comp instanceof OptionList) { String v = ((String) ((OptionList) comp).getSelectedItem()); if (v.equalsIgnoreCase("true")) { value = true; } else { value = false; } } if (comp instanceof JTextField) { value = ((JTextField) comp).getText(); } } } Score score = new Score(name.getText(), value, ty); addScore(score); draw(); } @Override public void addPropertyChangeListener(PropertyChangeListener arg0) {} @Override public Object getValue(String arg0) { return null; } @Override public boolean isEnabled() { return true; } @Override public void putValue(String arg0, Object arg1) {} @Override public void removePropertyChangeListener(PropertyChangeListener arg0) {} @Override public void setEnabled(boolean arg0) {} }); add.setText("Add"); add.setVisible(true); newS.add(add); current.add(newS); this.removeAll(); this.add(current); this.window.refresh(); return; }