⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 encodingcomboboxmodel.java

📁 Java的Web报表库
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
   * Defines the selected index for this encoding model.
   *
   * @param index the selected index or -1 to clear the selection.
   * @throws IllegalArgumentException if the given index is invalid.
   */
  public void setSelectedIndex(final int index)
  {
    if (index == -1)
    {
      selectedIndex = -1;
      selectedObject = null;
      return;
    }
    if (index < -1 || index >= getSize())
    {
      throw new IllegalArgumentException("Index is invalid.");
    }
    selectedIndex = index;
    selectedObject = getElementAt(index);
  }

  /**
   * Returns the selected encoding.
   *
   * @return The encoding (name).
   */
  public String getSelectedEncoding()
  {
    if (selectedIndex == -1)
    {
      return null;
    }
    final EncodingCarrier ec = (EncodingCarrier) encodings.get(selectedIndex);
    return ec.getName();
  }

  /**
   * Returns the selected item.
   *
   * @return The selected item or <code>null</code> if there is no selection
   */
  public Object getSelectedItem()
  {
    return selectedObject;
  }

  /**
   * Returns the length of the list.
   *
   * @return the length of the list
   */
  public int getSize()
  {
    return encodings.size();
  }

  /**
   * Returns the value at the specified index.
   *
   * @param index the requested index
   *
   * @return the value at <code>index</code>
   */
  public Object getElementAt(final int index)
  {
    final EncodingCarrier ec = (EncodingCarrier) encodings.get(index);
    return ec.getDisplayName();
  }

  /**
   * Adds a listener to the list that's notified each time a change
   * to the data model occurs.
   *
   * @param l the <code>ListDataListener</code> to be added
   */
  public void addListDataListener(final ListDataListener l)
  {
    if (listDataListeners == null)
    {
      listDataListeners = new ArrayList(5);
    }
    listDataListeners.add(l);
  }

  /**
   * Removes a listener from the list that's notified each time a
   * change to the data model occurs.
   *
   * @param l the <code>ListDataListener</code> to be removed
   */
  public void removeListDataListener(final ListDataListener l)
  {
    if (listDataListeners == null)
    {
      return;
    }
    listDataListeners.remove(l);
  }

  /**
   * Initializes the known names for the default encodings. Not all encodings may
   * be available on a specific platform, these encoding will be ignored later.
   *
   * @return the singleton instance of the initialized default encoding names
   */
  private static Properties getDefaultEncodings()
  {
    if (defaultEncodings == null)
    {
      defaultEncodings = new Properties();
      // basic encoding set, base encodings
      defaultEncodings.put("ASCII", "American Standard Code for Information Interchange");
      defaultEncodings.put("Cp1252", "Windows Latin-1");
      defaultEncodings.put("ISO-8859-1", "Latin alphabet No. 1");
      defaultEncodings.put("ISO-8859-15", "Latin alphabet No. 9, 'Euro' enabled");
      defaultEncodings.put("UTF-8", "8 Bit UCS Transformation Format");
      defaultEncodings.put("UTF-16", "16 Bit UCS Transformation Format");
      // missing: UTF-16BE, UTF-16LE are no base need in EndUser environments

      //extended encoding set, contained in lib/charsets.jar
      defaultEncodings.put("Cp1250", "Windows Eastern Europe");
      defaultEncodings.put("Cp1251", "Windows Cyrillic");
      defaultEncodings.put("Cp1253", "Windows Greek");
      defaultEncodings.put("Cp1254", "Windows Turkish");
      defaultEncodings.put("Cp1255", "Windows Hebrew");
      defaultEncodings.put("Cp1256", "Windows Arabic");
      defaultEncodings.put("Cp1257", "Windows Baltic");
      defaultEncodings.put("Cp1258", "Windows Vietnamese");
      defaultEncodings.put("ISO-8859-2", "Latin alphabet No. 2");
      defaultEncodings.put("ISO-8859-3", "Latin alphabet No. 3");
      defaultEncodings.put("ISO-8859-4", "Latin alphabet No. 4");
      defaultEncodings.put("ISO-8859-5", "Latin/Cyrillic Alphabet");
      defaultEncodings.put("ISO-8859-6", "Latin/Arabic Alphabet");
      defaultEncodings.put("ISO-8859-7", "Latin/Greek Alphabet");
      defaultEncodings.put("ISO-8859-8", "Latin/Hebrew Alphabet");
      defaultEncodings.put("ISO-8859-9", "Latin alphabet No. 5");
      defaultEncodings.put("ISO-8859-13", "Latin alphabet No. 7");
      defaultEncodings.put("MS932", "Windows Japanese");
      defaultEncodings.put("EUC-JP", "JISX 0201, 0208 and 0212, EUC encoding Japanese");
      defaultEncodings.put("EUC-JP-LINUX", "JISX 0201, 0208, EUC encoding Japanese");
      defaultEncodings.put("SJIS", "Shift-JIS, Japanese");
      defaultEncodings.put("ISO-2022-JP", "JIS X 0201, 0208, in ISO 2002 form, Japanese");
      defaultEncodings.put("MS936", "Windows Simplified Chinese");
      defaultEncodings.put("GB18030", "Simplified Chinese, PRC standard");
      defaultEncodings.put("EUC_CN", "GB2312, EUC encoding, Simplified Chinese");
      defaultEncodings.put("GB2312", "GB2312, EUC encoding, Simplified Chinese");
      defaultEncodings.put("GBK", "GBK, Simplified Chinese");
      defaultEncodings.put("ISCII91", "ISCII encoding of Indic scripts");
      defaultEncodings.put("ISO-2022-CN-GB", "GB2312 in ISO 2022 CN form, Simplified Chinese");
      defaultEncodings.put("MS949", "Windows Korean");
      defaultEncodings.put("EUC_KR", "KS C 5601, EUC encoding, Korean");
      defaultEncodings.put("ISO-2022-KR", "ISO 2022 KR, Korean");
      defaultEncodings.put("MS950", "Windows Traditional Chinese");
      defaultEncodings.put("EUC-TW", "CNS 11643 (Plane 1-3), EUC encoding, Traditional Chinese");
      defaultEncodings.put("ISO-2022-CN-CNS",
          "CNS 11643 in ISO 2022 CN form, Traditional Chinese");
      defaultEncodings.put("Big5", "Big5, Traditional Chinese");
      defaultEncodings.put("Big5-HKSCS", "Big5 with Hong Kong extensions, Traditional Chinese");
      defaultEncodings.put("TIS-620", "TIS 620, Thai");
      defaultEncodings.put("KOI8-R", "KOI8-R, Russian");

      //extended encoding set, contained in lib/charsets.jar
      defaultEncodings.put("Big5_Solaris",
          "Big5 with seven additional Hanzi ideograph character mappings");
      defaultEncodings.put("Cp037",
          "USA, Canada (Bilingual, French), Netherlands, Portugal, Brazil, Australia");
      defaultEncodings.put("Cp273", "IBM Austria, Germany");
      defaultEncodings.put("Cp277", "IBM Denmark, Norway");
      defaultEncodings.put("Cp278", "IBM Finland, Sweden");
      defaultEncodings.put("Cp280", "IBM Italy");
      defaultEncodings.put("Cp284", "IBM Catalan/Spain, Spanish Latin America");
      defaultEncodings.put("Cp285", "IBM United Kingdom, Ireland");
      defaultEncodings.put("Cp297", "IBM France");
      defaultEncodings.put("Cp420", "IBM Arabic");
      defaultEncodings.put("Cp424", "IBM Hebrew");
      defaultEncodings.put("Cp437", "MS-DOS United States, Australia, New Zealand, South Africa");
      defaultEncodings.put("Cp500", "EBCDIC 500V1");
      defaultEncodings.put("Cp737", "PC Greek");
      defaultEncodings.put("Cp775", "PC Baltik");
      defaultEncodings.put("Cp838", "IBM Thailand extended SBCS");
      defaultEncodings.put("Cp850", "MS-DOS Latin-1");
      defaultEncodings.put("Cp852", "MS-DOS Latin 2");
      defaultEncodings.put("Cp855", "IBM Cyrillic");
      defaultEncodings.put("Cp856", "IBM Hebrew");
      defaultEncodings.put("Cp857", "IBM Turkish");
      defaultEncodings.put("Cp858", "MS-DOS Latin-1 with Euro character");
      defaultEncodings.put("Cp860", "MS-DOS Portuguese");
      defaultEncodings.put("Cp861", "MS-DOS Icelandic");
      defaultEncodings.put("Cp862", "PC Hebrew");
      defaultEncodings.put("Cp863", "MS-DOS Canadian French");
      defaultEncodings.put("Cp864", "PC Arabic");
      defaultEncodings.put("Cp865", "MS-DOS Nordic");
      defaultEncodings.put("Cp866", "MS-DOS Russian");
      defaultEncodings.put("Cp868", "MS-DOS Pakistan");
      defaultEncodings.put("Cp869", "IBM Modern Greek");
      defaultEncodings.put("Cp870", "IBM Multilingual Latin-2");
      defaultEncodings.put("Cp871", "IBM Iceland");
      defaultEncodings.put("Cp874", "IBM Thai");
      defaultEncodings.put("Cp875", "IBM Greek");
      defaultEncodings.put("Cp918", "IBM Pakistan (Urdu)");
      defaultEncodings.put("Cp921", "IBM Lativa, Lithuania (AIX, DOS)");
      defaultEncodings.put("Cp922", "IBM Estonia (AIX, DOS)");
      defaultEncodings.put("Cp930",
          "Japanese Katakana-Kanji mixed with 4370 UDC, superset of 5026");
      defaultEncodings.put("Cp933", "Korean mixed with 1880 UDC, superset of 5029");
      defaultEncodings.put("Cp935", "Simplified Chinese mixed with 1880 UDC, superset of 5031");
      defaultEncodings.put("Cp937",
          "Traditional Chinsese Hostmixed with 6204 UDC, superset of 5033");
      defaultEncodings.put("Cp939", "Japanese Latin Kanji mixed with 4370 UDC, superset of 5035");
      defaultEncodings.put("Cp942", "IBM OS/2 Japanese, superset of Cp932");
      defaultEncodings.put("Cp942C", "Variant of Cp942: IBM OS/2 Japanese, superset of Cp932");
      defaultEncodings.put("Cp943", "IBM OS/2 Japanese, superset of Cp932 and Shift-JIS");
      defaultEncodings.put("Cp943C",
          "Variant of Cp943: IBM OS/2 Japanese, superset of Cp932 and Shift-JIS");
      defaultEncodings.put("Cp948", "IBM OS/2 Chinese (Taiwan) superset of Cp938");
      defaultEncodings.put("Cp949", "PC Korean");
      defaultEncodings.put("Cp949C", "Variant of Cp949: PC Korean");
      defaultEncodings.put("Cp950", "PC Chinese (Hong Kong, Taiwan)");
      defaultEncodings.put("Cp964", "AIX Chinese (Taiwan)");
      defaultEncodings.put("Cp970", "AIX Korean");
      defaultEncodings.put("Cp1006", "IBM AIX Parkistan (Urdu)");
      defaultEncodings.put("Cp1025",
          "IBM Multilingual Cyrillic: Bulgaria, Bosnia, Herzegovinia, Macedonia (FYR)");
      defaultEncodings.put("Cp1026", "IBM Latin-5, Turkey");
      defaultEncodings.put("Cp1046", "IBM Arabic Windows");
      defaultEncodings.put("Cp1097", "IBM Iran (Farsi)/Persian");
      defaultEncodings.put("Cp1098", "IBM Iran (Farsi)/Persian (PC)");
      defaultEncodings.put("Cp1112", "IBM Lativa, Lithuania");
      defaultEncodings.put("Cp1122", "IBM Estonia");
      defaultEncodings.put("Cp1123", "IBM Ukraine");
      defaultEncodings.put("Cp1124", "IBM AIX Ukraine");
      defaultEncodings.put("Cp1140",
          "USA, Canada (Bilingual, French), Netherlands, Portugal, Brazil, Australia (with Euro)");
      defaultEncodings.put("Cp1141", "IBM Austria, Germany (Euro enabled)");
      defaultEncodings.put("Cp1142", "IBM Denmark, Norway (Euro enabled)");
      defaultEncodings.put("Cp1143", "IBM Finland, Sweden (Euro enabled)");
      defaultEncodings.put("Cp1144", "IBM Italy (Euro enabled)");
      defaultEncodings.put("Cp1145", "IBM Catalan/Spain, Spanish Latin America (with Euro)");
      defaultEncodings.put("Cp1146", "IBM United Kingdom, Ireland (with Euro)");
      defaultEncodings.put("Cp1147", "IBM France (with Euro)");
      defaultEncodings.put("Cp1148", "IBM EBCDIC 500V1 (with Euro)");
      defaultEncodings.put("Cp1149", "IBM Iceland (with Euro)");
      defaultEncodings.put("Cp1381", "IBM OS/2, DOS People's Republic of Chine (PRC)");
      defaultEncodings.put("Cp1383", "IBM AIX People's Republic of Chine (PRC)");
      defaultEncodings.put("Cp33722", "IBM-eucJP - Japanese (superset of 5050)");
      defaultEncodings.put("MS874", "Windows Thai");
      defaultEncodings.put("MacArabic", "Macintosh Arabic");
      defaultEncodings.put("MacCentralEurope", "Macintosh Latin-2");
      defaultEncodings.put("MacCroatian", "Macintosh Croatian");
      defaultEncodings.put("MacCyrillic", "Macintosh Cyrillic");
      defaultEncodings.put("MacDingbat", "Macintosh Dingbat");
      defaultEncodings.put("MacGreek", "Macintosh Greek");
      defaultEncodings.put("MacHebrew", "Macintosh Hebrew");
      defaultEncodings.put("MacIceland", "Macintosh Iceland");
      defaultEncodings.put("MacRoman", "Macintosh Roman");
      defaultEncodings.put("MacRomania", "Macintosh Romania");
      defaultEncodings.put("MacSymbol", "Macintosh Symbol");
      defaultEncodings.put("MacThai", "Macintosh Thai");
      defaultEncodings.put("MacTurkish", "Macintosh Turkish");
      defaultEncodings.put("MacUkraine", "Macintosh Ukraine");
    }
    return defaultEncodings;
  }

  /**
   * Creates a default model containing a selection of encodings.
   *
   * @return The default model.
   */
  public static EncodingComboBoxModel createDefaultModel()
  {
    final EncodingComboBoxModel ecb = new EncodingComboBoxModel();

    final String availEncs = ReportConfiguration.getGlobalConfig().getAvailableEncodings();

    if (availEncs.equalsIgnoreCase(ReportConfiguration.AVAILABLE_ENCODINGS_ALL))
    {
      final Properties encodings = getDefaultEncodings();
      final Enumeration enum = encodings.keys();
      while (enum.hasMoreElements())
      {
        final String enc = (String) enum.nextElement();
        // if not set to "true"
        if (encodings.getProperty(enc, "false").equalsIgnoreCase("true"))
        {
          // if the encoding is disabled ...
          ecb.addEncoding(enc, defaultEncodings.getProperty(enc, ENCODING_DEFAULT_DESCRIPTION));
        }
      }
    }
    else if (availEncs.equals(ReportConfiguration.AVAILABLE_ENCODINGS_FILE))
    {
      final String encFile = ReportConfiguration.getGlobalConfig().getEncodingsDefinitionFile();
      final InputStream in = ecb.getClass().getResourceAsStream(encFile);
      if (in == null)
      {
        Log.warn(new Log.SimpleMessage
            ("The specified encodings definition file was not found: ", encFile));
      }
      else
      {
        try
        {
          final Properties defaultEncodings = getDefaultEncodings();
          final Properties encDef = new Properties();
          final BufferedInputStream bin = new BufferedInputStream(in);
          encDef.load(bin);
          bin.close();
          final Enumeration enum = encDef.keys();
          while (enum.hasMoreElements())
          {
            final String enc = (String) enum.nextElement();
            // if not set to "true"
            if (encDef.getProperty(enc, "false").equalsIgnoreCase("true"))
            {
              // if the encoding is disabled ...
              ecb.addEncoding
                  (enc, defaultEncodings.getProperty(enc, ENCODING_DEFAULT_DESCRIPTION));
            }
          }
        }
        catch (IOException e)
        {
          Log.warn(new Log.SimpleMessage
              ("There was an error while reading the encodings definition file: ", encFile), e);
        }
      }
    }
    return ecb;
  }

  /**
   * Returns the index of an encoding.
   *
   * @param encoding  the encoding (name).
   *
   * @return The index.
   */
  public int indexOf(final String encoding)
  {
    return encodings.indexOf(new EncodingCarrier(encoding, null));
  }

  /**
   * Returns an encoding.
   *
   * @param index  the index.
   *
   * @return The index.
   */
  public String getEncoding(final int index)
  {
    final EncodingCarrier ec = (EncodingCarrier) encodings.get(index);
    return ec.getName();
  }

  /**
   * Returns a description.
   *
   * @param index  the index.
   *
   * @return The description.
   */
  public String getDescription(final int index)
  {
    final EncodingCarrier ec = (EncodingCarrier) encodings.get(index);
    return ec.getDescription();
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -