1.1 --- a/encoder.custom.aip/src/org/netbeans/modules/encoder/custom/aip/Bundle.properties Mon Jul 28 12:09:42 2008 -0700
1.2 +++ b/encoder.custom.aip/src/org/netbeans/modules/encoder/custom/aip/Bundle.properties Mon Jul 28 17:02:04 2008 -0700
1.3 @@ -70,6 +70,8 @@
1.4 encoding_node.lbl.node_type=Node Type
1.5 encoding_node.lbl.encoding_style_short=Encoding Style
1.6 encoding_node.lbl.encoding_style=Encoding Style
1.7 +encoding_node.lbl.begin_delimiter=Begin Delimiter
1.8 +encoding_node.lbl.begin_delimiter_detached=Begin Delimiter Detached
1.9
1.10 delim_tree_tab.lbl.length_short=Length
1.11 delim_tree_tab.lbl.length=Length for embedded delimiter
1.12 @@ -96,9 +98,9 @@
1.13 delim_tree_tab.lbl.collapse_short=Collapse
1.14 delim_tree_tab.lbl.collapse=Collapse matched identical consecutive delimiters into one
1.15 delim_tree_tab.lbl.detached_short=Detached
1.16 -delim_tree_tab.lbl.detached=Non-Anchored delimiter does not have to appear at fixed position
1.17 +delim_tree_tab.lbl.detached=Detached (non-anchored) delimiter does not have to appear at fixed position
1.18 delim_tree_tab.lbl.begin_detached_short=BegDetached
1.19 -delim_tree_tab.lbl.begin_detached=Non-Anchored begin delimiter does not have to appear at fixed position
1.20 +delim_tree_tab.lbl.begin_detached=Detached (non-anchored) begin delimiter does not have to appear at fixed position
1.21
1.22 delim_set_pe.lbl.not_specified=not specified
1.23 delim_set_pe.lbl.levels={0,number,integer} levels
2.1 --- a/encoder.custom.aip/src/org/netbeans/modules/encoder/custom/aip/EncodingNode.java Mon Jul 28 12:09:42 2008 -0700
2.2 +++ b/encoder.custom.aip/src/org/netbeans/modules/encoder/custom/aip/EncodingNode.java Mon Jul 28 17:02:04 2008 -0700
2.3 @@ -245,6 +245,24 @@
2.4 propSet.put(lengthProp);
2.5 }
2.6
2.7 + if (NodeProperties.NodeType.FIXED_LENGTH.equals(mEncodingOption.xgetNodeType())) {
2.8 + PropertySupport.Reflection<String> beginDelimiterProp =
2.9 + new PropertySupport.Reflection<String>(mEncodingOption,
2.10 + String.class, "beginDelimiter"); //NOI18N
2.11 + beginDelimiterProp.setName("beginDelimiter"); //NOI18N
2.12 + beginDelimiterProp.setDisplayName(_bundle.getString("encoding_node.lbl.begin_delimiter"));
2.13 + propSet.put(beginDelimiterProp);
2.14 + }
2.15 +
2.16 + if (NodeProperties.NodeType.FIXED_LENGTH.equals(mEncodingOption.xgetNodeType())) {
2.17 + PropertySupport.Reflection<Boolean> beginDelimiterDetachedProp =
2.18 + new PropertySupport.Reflection<Boolean>(mEncodingOption,
2.19 + boolean.class, "beginDelimiterDetached"); //NOI18N
2.20 + beginDelimiterDetachedProp.setName("beginDelimiterDetached"); //NOI18N
2.21 + beginDelimiterDetachedProp.setDisplayName(_bundle.getString("encoding_node.lbl.begin_delimiter_detached"));
2.22 + propSet.put(beginDelimiterDetachedProp);
2.23 + }
2.24 +
2.25 if (NodeProperties.NodeType.DELIMITED.equals(mEncodingOption.xgetNodeType())
2.26 || NodeProperties.NodeType.ARRAY.equals(mEncodingOption.xgetNodeType())) {
2.27 PropertySupport.Reflection<String> delimiterProp =
2.28 @@ -255,15 +273,6 @@
2.29 propSet.put(delimiterProp);
2.30 }
2.31
2.32 - if (NodeProperties.NodeType.FIXED_LENGTH.equals(mEncodingOption.xgetNodeType())) {
2.33 - PropertySupport.Reflection<Integer> lengthProp =
2.34 - new PropertySupport.Reflection<Integer>(mEncodingOption,
2.35 - int.class, "length"); //NOI18N
2.36 - lengthProp.setName("length"); //NOI18N
2.37 - lengthProp.setDisplayName(_bundle.getString("encoding_node.lbl.length"));
2.38 - propSet.put(lengthProp);
2.39 - }
2.40 -
2.41 if (mEncodingOption.testIsGlobal() && mEncodingOption.isTop()) {
2.42 //The Escape Sequence Property
2.43 PropertySupport.Reflection<String> escapeSequenceProp =
2.44 @@ -290,6 +299,11 @@
2.45 return sheet;
2.46 }
2.47
2.48 + /**
2.49 + * This method gets called when a bound property is changed.
2.50 + * @param evt A PropertyChangeEvent object describing the event source
2.51 + * and the property that has changed.
2.52 + */
2.53 public void propertyChange(PropertyChangeEvent evt) {
2.54 if (mChangeSheetPropNames.contains(evt.getPropertyName())) {
2.55 setSheet(createSheet());
3.1 --- a/encoder.custom.aip/src/org/netbeans/modules/encoder/custom/aip/EncodingOption.java Mon Jul 28 12:09:42 2008 -0700
3.2 +++ b/encoder.custom.aip/src/org/netbeans/modules/encoder/custom/aip/EncodingOption.java Mon Jul 28 17:02:04 2008 -0700
3.3 @@ -24,6 +24,7 @@
3.4 import com.sun.encoder.custom.appinfo.DelimiterLevel;
3.5 import com.sun.encoder.custom.appinfo.DelimiterSet;
3.6 import com.sun.encoder.custom.appinfo.NodeProperties;
3.7 +import com.sun.encoder.custom.appinfo.NodeProperties.DelimOfFixed;
3.8 import com.sun.encoder.runtime.provider.Misc;
3.9 import java.beans.PropertyChangeEvent;
3.10 import java.beans.PropertyChangeListener;
3.11 @@ -169,6 +170,8 @@
3.12 private boolean mNoMatch = false;
3.13 private String mAlignment = mTextMap.get(ALIGNMENT_PREFIX + "_" + NodeProperties.Alignment.BLIND); //NOI18N
3.14 private int mLength = 0;
3.15 + private String mBeginDelimiter = ""; //NOI18N
3.16 + private boolean mBeginDelimiterDetached = true;
3.17 private String mEscapeSequence = ""; //NOI18N
3.18 private boolean mFineInherit = false;
3.19
3.20 @@ -294,6 +297,46 @@
3.21 firePropertyChange("length", old, Integer.valueOf(mLength)); //NOI18N
3.22 }
3.23
3.24 + public String getBeginDelimiter() {
3.25 + return mBeginDelimiter;
3.26 + }
3.27 +
3.28 + public void setBeginDelimiter(String beginDelimiter) {
3.29 + String old = mBeginDelimiter;
3.30 + mBeginDelimiter = beginDelimiter;
3.31 + if (mBeginDelimiter == null || mBeginDelimiter.length() == 0) {
3.32 + // if empty delimiter is set, then remove the "delimOfFixed" element
3.33 + if (mCustomEncoding.getNodeProperties().isSetDelimOfFixed()) {
3.34 + mCustomEncoding.getNodeProperties().unsetDelimOfFixed();
3.35 + }
3.36 + } else {
3.37 + if (!mCustomEncoding.getNodeProperties().isSetDelimOfFixed()) {
3.38 + mCustomEncoding.getNodeProperties().addNewDelimOfFixed();
3.39 + }
3.40 + mCustomEncoding.getNodeProperties().getDelimOfFixed().setBeginBytes(mBeginDelimiter);
3.41 + }
3.42 + commitToAppInfo();
3.43 + firePropertyChange("beginDelimiter", old, mBeginDelimiter); //NOI18N
3.44 + }
3.45 +
3.46 + public boolean getBeginDelimiterDetached() {
3.47 + return mBeginDelimiterDetached;
3.48 + }
3.49 +
3.50 + public void setBeginDelimiterDetached(boolean beginDelimiterDetached) {
3.51 + if (!mCustomEncoding.getNodeProperties().isSetDelimOfFixed()) {
3.52 + // do nothing so that as if user can not
3.53 + // check the "Begin Delimiter Detached" because the
3.54 + // "Begin Delimiter" field is not set any value yet.
3.55 + return;
3.56 + }
3.57 + boolean old = mBeginDelimiterDetached;
3.58 + mBeginDelimiterDetached = beginDelimiterDetached;
3.59 + mCustomEncoding.getNodeProperties().getDelimOfFixed().setBeginAnch(!mBeginDelimiterDetached);
3.60 + commitToAppInfo();
3.61 + firePropertyChange("beginDelimiterDetached", old, mBeginDelimiterDetached); //NOI18N
3.62 + }
3.63 +
3.64 public String getMatch() {
3.65 return mMatch;
3.66 }
3.67 @@ -811,6 +854,13 @@
3.68 if (customEncoding.getNodeProperties().isSetLength()) {
3.69 mLength = customEncoding.getNodeProperties().getLength();
3.70 }
3.71 + if (customEncoding.getNodeProperties().isSetDelimOfFixed()) {
3.72 + DelimOfFixed delimOfFixed = customEncoding.getNodeProperties().getDelimOfFixed();
3.73 + mBeginDelimiter = delimOfFixed.getBeginBytes();
3.74 + if (delimOfFixed.isSetBeginAnch()) {
3.75 + mBeginDelimiterDetached = !delimOfFixed.getBeginAnch();
3.76 + }
3.77 + }
3.78 if (customEncoding.getNodeProperties().isSetDelimiterSet()) {
3.79 mDelimiterSet = customEncoding.getNodeProperties().getDelimiterSet();
3.80 }