コード例 #1
0
 /* (non-Javadoc)
  * @see edu.ku.brc.ui.forms.formatters.DataObjFieldFormatPanelBuilder#fillWithObjFormatter(edu.ku.brc.ui.forms.formatters.DataObjSwitchFormatter)
  */
 public void fillWithObjFormatter(final DataObjSwitchFormatter switchFormatter) {
   if (switchFormatter != null) {
     fillWithObjFormatter(switchFormatter.getSingle());
   } else {
     fillWithObjFormatter((DataObjDataFieldFormatIFace) null);
   }
 }
コード例 #2
0
  /** @param formatter */
  protected void setFormatterFromTextPane(final DataObjSwitchFormatter formatter) {
    // visit every character in the document text looking for fields
    // store characters not associated with components (jbutton) to make up the separator text
    DefaultStyledDocument doc = (DefaultStyledDocument) formatEditor.getStyledDocument();
    String text = formatEditor.getText();
    int docLen = doc.getLength();
    int lastFieldPos = 0;

    Vector<DataObjDataField> fields = new Vector<DataObjDataField>();
    // int cnt = 0;
    for (int i = 0; i < docLen; ++i) {
      Element element = doc.getCharacterElement(i);
      AttributeSet attrs = element.getAttributes();
      Object obj = attrs.getAttribute(StyleConstants.ComponentAttribute);
      // System.out.print(String.format("i: %d, lastFieldPos: %d cnt: %d, F: %s", i, lastFieldPos,
      // cnt, (obj instanceof FieldDefinitionComp ? "Y" : "N")));
      if (obj instanceof FieldDefinitionComp) {
        // System.out.println(cnt+"  "+(obj instanceof FieldDefinitionComp));
        // found button at the current position
        // create corresponding field
        String sepStr = (lastFieldPos <= i - 1) ? text.substring(lastFieldPos, i) : "";

        FieldDefinitionComp fieldDefBtn = (FieldDefinitionComp) obj;
        DataObjDataField fmtField = fieldDefBtn.getValue();
        fmtField.setSep(sepStr);
        fields.add(fmtField);

        // System.out.print(" Sep: ["+sepStr+"]");

        lastFieldPos = i + 1;
        // cnt++;
      }
    }

    // XXX: what do we do with the remaining of the text? right now we ignore it
    // That's because we can't create an empty formatter field just to use the separator...

    DataObjDataField[] fieldsArray = new DataObjDataField[fields.size()];
    for (int i = 0; i < fields.size(); ++i) {
      fieldsArray[i] = fields.elementAt(i);
    }

    DataObjDataFieldFormat singleFormatter =
        fieldsArray.length == 0
            ? null
            : new DataObjDataFieldFormat("", tableInfo.getClassObj(), false, "", "", fieldsArray);
    formatter.setSingle(singleFormatter);
  }