001: /*
002: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
003: *
004: * Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
005: *
006: * The contents of this file are subject to the terms of either the GNU
007: * General Public License Version 2 only ("GPL") or the Common
008: * Development and Distribution License("CDDL") (collectively, the
009: * "License"). You may not use this file except in compliance with the
010: * License. You can obtain a copy of the License at
011: * http://www.netbeans.org/cddl-gplv2.html
012: * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
013: * specific language governing permissions and limitations under the
014: * License. When distributing the software, include this License Header
015: * Notice in each file and include the License file at
016: * nbbuild/licenses/CDDL-GPL-2-CP. Sun designates this
017: * particular file as subject to the "Classpath" exception as provided
018: * by Sun in the GPL Version 2 section of the License file that
019: * accompanied this code. If applicable, add the following below the
020: * License Header, with the fields enclosed by brackets [] replaced by
021: * your own identifying information:
022: * "Portions Copyrighted [year] [name of copyright owner]"
023: *
024: * Contributor(s):
025: *
026: * The Original Software is NetBeans. The Initial Developer of the Original
027: * Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
028: * Microsystems, Inc. All Rights Reserved.
029: *
030: * If you wish your version of this file to be governed by only the CDDL
031: * or only the GPL Version 2, indicate your decision by adding
032: * "[Contributor] elects to include this software in this distribution
033: * under the [CDDL or GPL Version 2] license." If you do not indicate a
034: * single choice of license, a recipient has the option to distribute
035: * your version of this file under either the CDDL, the GPL Version 2 or
036: * to extend the choice of license to its licensees as provided above.
037: * However, if you add GPL Version 2 code and therefore, elected the GPL
038: * Version 2 license, then the option applies only if the new code is
039: * made subject to such option by the copyright holder.
040: */
041: package com.sun.jsfcl.std.reference;
042:
043: import java.io.BufferedReader;
044: import java.io.IOException;
045: import java.io.InputStream;
046: import java.io.InputStreamReader;
047: import java.util.List;
048:
049: /**
050: * @author eric
051: *
052: * TODO To change the template for this generated type comment go to
053: * Window - Preferences - Java - Code Generation - Code and Comments
054: */
055: public class CharacterSetsReferenceDataDefiner extends
056: ReferenceDataDefiner {
057: protected static final String FILENAME = "character-sets.txt"; // NOI18N
058:
059: public void addBaseItems(List list) {
060: InputStream in;
061: BufferedReader reader;
062: ReferenceDataItem item;
063: final String lookForName = "Name:"; // NOI18N
064: final String lookForAlias = "Alias:"; // NOI18N
065: final String noneAlias = "None"; // NOI18N
066:
067: super .addBaseItems(list);
068: // programatically add the "", null reference item
069: item = newItem("", null, null, true, false); // NOI18N
070: list.add(item);
071: in = null;
072: try {
073: in = getClass().getResourceAsStream(FILENAME);
074: reader = new BufferedReader(new InputStreamReader(in));
075: String line, extractedName;
076:
077: // Go to very first Name: line
078: while (true) {
079: line = reader.readLine();
080: if (line == null || line.startsWith(lookForName)) {
081: break;
082: }
083: }
084: while (line != null) {
085: int index;
086: ReferenceDataItem aliasFor;
087:
088: extractedName = line.substring(lookForName.length())
089: .trim();
090: index = extractedName.indexOf(' ');
091: if (index != -1) {
092: extractedName = extractedName.substring(0, index);
093: }
094: aliasFor = newItem(extractedName, extractedName, null,
095: false, false);
096: list.add(aliasFor);
097: while (true) {
098: String alias;
099:
100: line = reader.readLine();
101: if (line == null || line.startsWith(lookForName)) {
102: break;
103: }
104: if (line.startsWith(lookForAlias)) {
105: alias = line.substring(lookForAlias.length())
106: .trim();
107: if (!alias.equals(noneAlias)) {
108: item = newItem(alias, alias, null, false,
109: false, aliasFor);
110: list.add(item);
111: }
112: }
113: }
114: }
115: } catch (IOException e) {
116: assert ReferenceDataManager.loggerUtil
117: .config("Problems parsing reference data ref file for: "
118: + FILENAME); //NOI18N
119: } finally {
120: if (in != null) {
121: try {
122: in.close();
123: } catch (IOException e) {
124: }
125: ;
126: }
127: }
128: }
129:
130: public boolean canAddRemoveItems() {
131:
132: return true;
133: }
134:
135: public boolean isValueAString() {
136:
137: return true;
138: }
139:
140: }
|