亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? configurationmanager.java

?? apache的log4j源碼
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements.  See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License.  You may obtain a copy of the License at *  *      http://www.apache.org/licenses/LICENSE-2.0 *  * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package org.apache.log4j.lf5.viewer.configure;import org.apache.log4j.lf5.LogLevel;import org.apache.log4j.lf5.LogLevelFormatException;import org.apache.log4j.lf5.viewer.LogBrokerMonitor;import org.apache.log4j.lf5.viewer.LogTable;import org.apache.log4j.lf5.viewer.categoryexplorer.CategoryExplorerModel;import org.apache.log4j.lf5.viewer.categoryexplorer.CategoryExplorerTree;import org.apache.log4j.lf5.viewer.categoryexplorer.CategoryNode;import org.apache.log4j.lf5.viewer.categoryexplorer.CategoryPath;import org.apache.log4j.lf5.viewer.LogTableColumn;import org.apache.log4j.lf5.viewer.LogTableColumnFormatException;import org.w3c.dom.Document;import org.w3c.dom.NamedNodeMap;import org.w3c.dom.Node;import org.w3c.dom.NodeList;import javax.swing.*;import javax.swing.tree.TreePath;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import java.awt.*;import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.io.PrintWriter;import java.util.*;import java.util.List;/** * <p>ConfigurationManager handles the storage and retrival of the state of * the CategoryExplorer * * @author Richard Hurst * @author Brad Marlborough */// Contributed by ThoughtWorks Inc.public class ConfigurationManager extends Object {  //--------------------------------------------------------------------------  //   Constants:  //--------------------------------------------------------------------------  private static final String CONFIG_FILE_NAME = "lf5_configuration.xml";  private static final String NAME = "name";  private static final String PATH = "path";  private static final String SELECTED = "selected";  private static final String EXPANDED = "expanded";  private static final String CATEGORY = "category";  private static final String FIRST_CATEGORY_NAME = "Categories";  private static final String LEVEL = "level";  private static final String COLORLEVEL = "colorlevel";  private static final String RED = "red";  private static final String GREEN = "green";  private static final String BLUE = "blue";  private static final String COLUMN = "column";  private static final String NDCTEXTFILTER = "searchtext";  //--------------------------------------------------------------------------  //   Protected Variables:  //--------------------------------------------------------------------------  //--------------------------------------------------------------------------  //   Private Variables:  //--------------------------------------------------------------------------  private LogBrokerMonitor _monitor = null;  private LogTable _table = null;  //--------------------------------------------------------------------------  //   Constructors:  //--------------------------------------------------------------------------  public ConfigurationManager(LogBrokerMonitor monitor, LogTable table) {    super();    _monitor = monitor;    _table = table;    load();  }  //--------------------------------------------------------------------------  //   Public Methods:  //--------------------------------------------------------------------------  public void save() {    CategoryExplorerModel model = _monitor.getCategoryExplorerTree().getExplorerModel();    CategoryNode root = model.getRootCategoryNode();    StringBuffer xml = new StringBuffer(2048);    openXMLDocument(xml);    openConfigurationXML(xml);    processLogRecordFilter(_monitor.getNDCTextFilter(), xml);    processLogLevels(_monitor.getLogLevelMenuItems(), xml);    processLogLevelColors(_monitor.getLogLevelMenuItems(),        LogLevel.getLogLevelColorMap(), xml);    processLogTableColumns(LogTableColumn.getLogTableColumns(), xml);    processConfigurationNode(root, xml);    closeConfigurationXML(xml);    store(xml.toString());  }  public void reset() {    deleteConfigurationFile();    collapseTree();    selectAllNodes();  }  public static String treePathToString(TreePath path) {    // count begins at one so as to not include the 'Categories' - root category    StringBuffer sb = new StringBuffer();    CategoryNode n = null;    Object[] objects = path.getPath();    for (int i = 1; i < objects.length; i++) {      n = (CategoryNode) objects[i];      if (i > 1) {        sb.append(".");      }      sb.append(n.getTitle());    }    return sb.toString();  }  //--------------------------------------------------------------------------  //   Protected Methods:  //--------------------------------------------------------------------------  protected void load() {    File file = new File(getFilename());    if (file.exists()) {      try {        DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.            newInstance();        DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();        Document doc = docBuilder.parse(file);        processRecordFilter(doc);        processCategories(doc);        processLogLevels(doc);        processLogLevelColors(doc);        processLogTableColumns(doc);      } catch (Exception e) {        // ignore all error and just continue as if there was no        // configuration xml file but do report a message        System.err.println("Unable process configuration file at " +            getFilename() + ". Error Message=" + e.getMessage());      }    }  }  // Added in version 1.2 - reads in the NDC text filter from the  // xml configuration file.  If the value of the filter is not null  // or an empty string ("") then the manager will set the LogBrokerMonitor's  // LogRecordFilter to use the NDC LogRecordFilter.  Otherwise, the  // LogBrokerMonitor will use the default LogRecordFilter.  protected void processRecordFilter(Document doc) {    NodeList nodeList = doc.getElementsByTagName(NDCTEXTFILTER);    // there is only one value stored    Node n = nodeList.item(0);    // add check for backwards compatibility  as this feature was added in    // version 1.2    if (n == null) {      return;    }    NamedNodeMap map = n.getAttributes();    String text = getValue(map, NAME);    if (text == null || text.equals("")) {      return;    }    _monitor.setNDCLogRecordFilter(text);  }  protected void processCategories(Document doc) {    CategoryExplorerTree tree = _monitor.getCategoryExplorerTree();    CategoryExplorerModel model = tree.getExplorerModel();    NodeList nodeList = doc.getElementsByTagName(CATEGORY);    // determine where the starting node is    NamedNodeMap map = nodeList.item(0).getAttributes();    int j = (getValue(map, NAME).equalsIgnoreCase(FIRST_CATEGORY_NAME)) ? 1 : 0;    // iterate backwards throught the nodeList so that expansion of the    // list can occur    for (int i = nodeList.getLength() - 1; i >= j; i--) {      Node n = nodeList.item(i);      map = n.getAttributes();      CategoryNode chnode = model.addCategory(new CategoryPath(getValue(map, PATH)));      chnode.setSelected((getValue(map, SELECTED).equalsIgnoreCase("true")) ? true : false);      if (getValue(map, EXPANDED).equalsIgnoreCase("true")) ;      tree.expandPath(model.getTreePathToRoot(chnode));    }  }  protected void processLogLevels(Document doc) {    NodeList nodeList = doc.getElementsByTagName(LEVEL);    Map menuItems = _monitor.getLogLevelMenuItems();    for (int i = 0; i < nodeList.getLength(); i++) {      Node n = nodeList.item(i);      NamedNodeMap map = n.getAttributes();      String name = getValue(map, NAME);      try {        JCheckBoxMenuItem item =            (JCheckBoxMenuItem) menuItems.get(LogLevel.valueOf(name));        item.setSelected(getValue(map, SELECTED).equalsIgnoreCase("true"));      } catch (LogLevelFormatException e) {        // ignore it will be on by default.      }    }  }  protected void processLogLevelColors(Document doc) {    NodeList nodeList = doc.getElementsByTagName(COLORLEVEL);    LogLevel.getLogLevelColorMap();    for (int i = 0; i < nodeList.getLength(); i++) {      Node n = nodeList.item(i);      // check for backwards compatibility since this feature was added      // in version 1.3

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品456| 91精品国产高清一区二区三区蜜臀| 色综合色狠狠综合色| 91精品国产aⅴ一区二区| 国产午夜精品福利| 日韩电影免费在线看| 99re热这里只有精品视频| 777精品伊人久久久久大香线蕉| 中文文精品字幕一区二区| 亚洲丶国产丶欧美一区二区三区| 国产又黄又大久久| 91精品国产色综合久久不卡蜜臀| 一本到不卡精品视频在线观看| 日韩国产欧美三级| 99久久精品99国产精品| 亚洲精品在线三区| 五月开心婷婷久久| 在线日韩国产精品| 国产精品伦一区二区三级视频| 久久99精品视频| 在线不卡免费欧美| 亚洲成人av福利| 欧美一区二区三区在线观看视频| 亚洲美女视频在线观看| jlzzjlzz国产精品久久| 欧美国产视频在线| 成人午夜av电影| 国产日产精品1区| 国产美女一区二区| 精品国产免费一区二区三区四区 | 欧美精品一二三| 一区二区免费视频| 在线视频你懂得一区| 亚洲综合无码一区二区| 色八戒一区二区三区| 一区二区三区小说| 在线观看亚洲精品| 亚洲综合偷拍欧美一区色| 精品视频999| 午夜不卡av免费| 日韩一区二区在线看片| 美女视频一区二区三区| 26uuu国产一区二区三区| 国产精品88av| 中文字幕中文字幕一区二区| av成人动漫在线观看| 亚洲一区免费观看| 日韩一级大片在线观看| 国产在线精品一区二区夜色 | 91精品国产综合久久久久久久久久 | 欧美va日韩va| 国产福利91精品一区| 国产精品乱人伦一区二区| 91社区在线播放| 日日夜夜免费精品| 久久精品一区二区三区四区| 99热精品一区二区| 亚洲大片免费看| 久久久久久久网| 色综合久久久久综合99| 日韩高清电影一区| 国产欧美日韩综合精品一区二区| 丁香网亚洲国际| 亚洲图片欧美一区| 精品电影一区二区三区| 91免费版在线看| 免费一级片91| 1000精品久久久久久久久| 欧美探花视频资源| 国产精品一二三四| 亚洲午夜精品久久久久久久久| 日韩精品影音先锋| 一本大道久久a久久精品综合| 日本三级亚洲精品| 国产精品成人免费在线| 欧美一区二区三区在线电影| 北岛玲一区二区三区四区| 日日摸夜夜添夜夜添精品视频| 久久久久久久久一| 欧美人动与zoxxxx乱| 丁香桃色午夜亚洲一区二区三区| 午夜国产精品一区| 亚洲欧美综合色| 精品国产一区久久| 欧美日韩一本到| 波多野结衣在线aⅴ中文字幕不卡| 午夜精品久久一牛影视| 亚洲美女精品一区| 久久久91精品国产一区二区三区| 欧美日本在线看| 一本大道av一区二区在线播放| 国内精品在线播放| 日本欧美一区二区| 亚洲在线观看免费| 亚洲视频免费观看| 国产精品免费看片| 久久久综合九色合综国产精品| 在线成人免费视频| 欧美精品乱码久久久久久| 色综合久久久久综合体| av电影在线不卡| 成人av资源在线观看| 国产一区不卡精品| 韩国女主播成人在线| 日本不卡不码高清免费观看| 亚洲6080在线| 亚洲线精品一区二区三区八戒| 亚洲青青青在线视频| 亚洲mv在线观看| 一区二区成人在线| 一个色综合网站| 亚洲综合成人在线| 亚洲一区二区三区美女| 亚洲男同性恋视频| 亚洲美女视频在线观看| 亚洲免费色视频| 亚洲另类在线视频| 亚洲综合小说图片| 午夜久久电影网| 日韩avvvv在线播放| 六月婷婷色综合| 久久国产精品露脸对白| 国产在线播精品第三| 成人在线视频一区二区| av在线综合网| 欧美最猛黑人xxxxx猛交| 在线欧美小视频| 欧美视频完全免费看| 欧美日韩黄视频| 日韩精品一区二区三区中文精品| 精品久久久久久无| 久久久精品国产免费观看同学| 日本一区二区三区电影| 亚洲人成伊人成综合网小说| 亚洲一区二区三区在线看| 五月天中文字幕一区二区| 紧缚捆绑精品一区二区| 国产宾馆实践打屁股91| 一本一本大道香蕉久在线精品| 欧美视频一二三区| 久久综合中文字幕| 国产精品久久久久久久久图文区 | 色综合久久天天| 欧美精品高清视频| 欧美mv日韩mv国产网站| 国产精品福利影院| 天使萌一区二区三区免费观看| 狠狠色丁香久久婷婷综合丁香| 成人app软件下载大全免费| 欧美日韩久久久| 欧美国产一区视频在线观看| 亚洲一卡二卡三卡四卡五卡| 日本中文字幕不卡| 成人永久免费视频| 日韩一区二区免费在线电影| 国产精品色噜噜| 日韩电影一二三区| 欧美日韩美少妇| 国产亚洲欧美日韩在线一区| 亚洲欧美视频在线观看| 极品销魂美女一区二区三区| 色一情一乱一乱一91av| 精品国产制服丝袜高跟| 一区二区三区四区乱视频| 激情综合网激情| 欧美在线观看一区二区| 国产女人18水真多18精品一级做 | 欧美精品在线观看一区二区| 久久精品亚洲精品国产欧美| 午夜欧美电影在线观看| 不卡电影免费在线播放一区| 日韩视频一区在线观看| 亚洲精品福利视频网站| 高清av一区二区| 欧美一级片在线看| 亚洲国产一区二区在线播放| 处破女av一区二区| 精品欧美久久久| 亚洲成人动漫在线观看| 97精品电影院| 国产欧美日韩不卡| 韩国女主播一区| 日韩久久久久久| 亚洲.国产.中文慕字在线| 99re这里只有精品视频首页| 国产目拍亚洲精品99久久精品| 精品一区二区三区在线观看 | 国产午夜精品在线观看| 日本不卡123| 欧美狂野另类xxxxoooo| 亚洲男人天堂av| 93久久精品日日躁夜夜躁欧美| 久久精品免视看| 国产精品中文字幕日韩精品| 日韩欧美一级在线播放| 日韩电影在线一区二区| 欧美一区二区私人影院日本| 秋霞电影一区二区| 欧美一卡二卡在线观看| 久久99国产精品久久99|