protected <T> Map<String, T> initParams(Class<T> klass, String extraParams, Pattern pattern) throws ValidationException { if (extraParams == null || extraParams.isEmpty()) { // not using return null; } StringTokenizer stk = new StringTokenizer(extraParams, "|"); Map<String, T> result = new java.util.TreeMap<String, T>(); while (stk.hasMoreTokens()) { String entry = stk.nextToken(); Matcher matcher = pattern.matcher(entry); if (!matcher.matches()) { throw new ValidationException("could not parse for extra params " + extraParams + " for type " + klass.getName()); } String paramName = matcher.group(1); String paramValueStr = matcher.group(2); T paramValue = ConverterUtil.convert(klass, paramValueStr); if (log.isDebugEnabled()) { log.debug("detected extra param : <type:" + klass + ", name:" + paramName + ", value:" + paramValue + ">"); } result.put(paramName, paramValue); } return result; } }
@Override public Object getCellEditorValue() { Object o = !hasDelegate() ? null : delegate.getCellEditorValue(); if (o == null) { return null; } Converter converter = ConverterUtil.getConverter(Class.class); try { if (converter != null) { return converter.convert(Class.class, o); } o = Class.forName(o + ""); } catch (Exception e) { o = null; } return o; }
@Override public void setValueAt(Object aValue, int row, int column) { if (column != 1) { // seul la colonne 1 est editable (valeur de l'option) throw new IllegalArgumentException("can not edit column " + column); } OptionModel key = getEntry(row); Object val; if (aValue == null || key.getType() == aValue.getClass()) { val = aValue; } else { String valStr = String.valueOf(aValue).trim(); try { val = ConverterUtil.convert(key.getType(), valStr); if (val != null && val instanceof Integer) { if (new Integer(0).equals(val) && !valStr.equals("0")) { val = null; } } } catch (Exception e) { val = null; } } categoryModel.setValue(key, val); fireTableRowsUpdated(row, row); } }
Converter converter = ConverterUtil.getConverter(valueClass); if (converter == null) { throw new RuntimeException("could not find converter for the type " + valueClass);
@Override public Object getValueAt(int row, int column) { OptionModel key = getEntry(row); Object value = null; switch (column) { case 0: value = key.getKey(); break; case 1: value = key.getValue(); break; case 2: value = key.getDefaultValue(); if (value != null) { value = ConverterUtil.convert(key.getType(), value); } break; } return value; // if (column == 0) { // return key.getKey(); // } // return key.getValue(); }
protected boolean prepareSave() { DialogConfigUI<E, ?> ui = getUi(); DialogConfigUIModel<E, ?> model = getModel(); Config<E> current = model.getCurrent(); if (!model.isConfigValid()) { log.warn("do not save a unvalid config : " + model.getUnvalids()); return false; } if (!model.isModified()) { log.warn("nothing to save"); return false; } EnumSet<E> toTreate = model.getCheckedKeysSet(); // transfert checkable values from ui to model for (E key : model.getModifieds()) { if (!toTreate.contains(key)) { continue; } Object value = ui.getElementValue(key); Class<?> type = ((Property) key).getType(); Object newValue = ConverterUtil.convert(type, value); current.setProperty(key, newValue); } return true; }