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

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

?? filteredlogtablemodel.java

?? apache的log4j源碼
?? JAVA
字號:
/* * 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;import org.apache.log4j.lf5.LogRecord;import org.apache.log4j.lf5.LogRecordFilter;import org.apache.log4j.lf5.PassingLogRecordFilter;import javax.swing.table.AbstractTableModel;import java.util.ArrayList;import java.util.Date;import java.util.Iterator;import java.util.List;/** * A TableModel for LogRecords which includes filtering support. * * @author Richard Wan * @author Brent Sprecher */// Contributed by ThoughtWorks Inc.public class FilteredLogTableModel    extends AbstractTableModel {  //--------------------------------------------------------------------------  //   Constants:  //--------------------------------------------------------------------------  //--------------------------------------------------------------------------  //   Protected Variables:  //--------------------------------------------------------------------------  protected LogRecordFilter _filter = new PassingLogRecordFilter();  protected List _allRecords = new ArrayList();  protected List _filteredRecords;  protected int _maxNumberOfLogRecords = 5000;  protected String[] _colNames = {"Date",                                  "Thread",                                  "Message #",                                  "Level",                                  "NDC",                                  "Category",                                  "Message",                                  "Location",                                  "Thrown"};  //--------------------------------------------------------------------------  //   Private Variables:  //--------------------------------------------------------------------------  //--------------------------------------------------------------------------  //   Constructors:  //--------------------------------------------------------------------------  public FilteredLogTableModel() {    super();  }  //--------------------------------------------------------------------------  //   Public Methods:  //--------------------------------------------------------------------------  public void setLogRecordFilter(LogRecordFilter filter) {    _filter = filter;  }  public LogRecordFilter getLogRecordFilter() {    return _filter;  }  public String getColumnName(int i) {    return _colNames[i];  }  public int getColumnCount() {    return _colNames.length;  }  public int getRowCount() {    return getFilteredRecords().size();  }  public int getTotalRowCount() {    return _allRecords.size();  }  public Object getValueAt(int row, int col) {    LogRecord record = getFilteredRecord(row);    return getColumn(col, record);  }  public void setMaxNumberOfLogRecords(int maxNumRecords) {    if (maxNumRecords > 0) {      _maxNumberOfLogRecords = maxNumRecords;    }  }  public synchronized boolean addLogRecord(LogRecord record) {    _allRecords.add(record);    if (_filter.passes(record) == false) {      return false;    }    getFilteredRecords().add(record);    fireTableRowsInserted(getRowCount(), getRowCount());    trimRecords();    return true;  }  /**   * Forces the LogTableModel to requery its filters to determine   * which records to display.   */  public synchronized void refresh() {    _filteredRecords = createFilteredRecordsList();    fireTableDataChanged();  }  public synchronized void fastRefresh() {    _filteredRecords.remove(0);    fireTableRowsDeleted(0, 0);  }  /**   * Clears all records from the LogTableModel   */  public synchronized void clear() {    _allRecords.clear();    _filteredRecords.clear();    fireTableDataChanged();  }  //--------------------------------------------------------------------------  //   Protected Methods:  //--------------------------------------------------------------------------  protected List getFilteredRecords() {    if (_filteredRecords == null) {      refresh();    }    return _filteredRecords;  }  protected List createFilteredRecordsList() {    List result = new ArrayList();    Iterator records = _allRecords.iterator();    LogRecord current;    while (records.hasNext()) {      current = (LogRecord) records.next();      if (_filter.passes(current)) {        result.add(current);      }    }    return result;  }  protected LogRecord getFilteredRecord(int row) {    List records = getFilteredRecords();    int size = records.size();    if (row < size) {      return (LogRecord) records.get(row);    }    // a minor problem has happened. JTable has asked for    // a row outside the bounds, because the size of    // _filteredRecords has changed while it was looping.    // return the last row.    return (LogRecord) records.get(size - 1);  }  protected Object getColumn(int col, LogRecord lr) {    if (lr == null) {      return "NULL Column";    }    String date = new Date(lr.getMillis()).toString();    switch (col) {      case 0:        return date + " (" + lr.getMillis() + ")";      case 1:        return lr.getThreadDescription();      case 2:        return new Long(lr.getSequenceNumber());      case 3:        return lr.getLevel();      case 4:        return lr.getNDC();      case 5:        return lr.getCategory();      case 6:        return lr.getMessage();      case 7:        return lr.getLocation();      case 8:        return lr.getThrownStackTrace();      default:        String message = "The column number " + col + "must be between 0 and 8";        throw new IllegalArgumentException(message);    }  }  // We don't want the amount of rows to grow without bound,  // leading to a out-of-memory-exception.  Especially not good  // in a production environment :)  // This method & clearLogRecords() are synchronized so we don't  // delete rows that don't exist.  protected void trimRecords() {    if (needsTrimming()) {      trimOldestRecords();    }  }  protected boolean needsTrimming() {    return (_allRecords.size() > _maxNumberOfLogRecords);  }  protected void trimOldestRecords() {    synchronized (_allRecords) {      int trim = numberOfRecordsToTrim();      if (trim > 1) {        List oldRecords =            _allRecords.subList(0, trim);        oldRecords.clear();        refresh();      } else {        _allRecords.remove(0);        fastRefresh();      }    }  }  //--------------------------------------------------------------------------  //   Private Methods:  //--------------------------------------------------------------------------  private int numberOfRecordsToTrim() {    return _allRecords.size() - _maxNumberOfLogRecords;  }  //--------------------------------------------------------------------------  //   Nested Top-Level Classes or Interfaces  //--------------------------------------------------------------------------}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美日韩国产成人精品影院| 日韩一区二区麻豆国产| 蜜臀av一级做a爰片久久| 国产精品色眯眯| 日韩欧美激情一区| 欧美性猛交xxxxxx富婆| 国产69精品一区二区亚洲孕妇| 日韩精品亚洲一区| 亚洲三级在线看| 国产欧美一区二区精品忘忧草| 欧美一区二区黄| 在线观看日韩精品| 91网址在线看| 9久草视频在线视频精品| 国产精品123| 久久精品国产**网站演员| 亚洲国产视频一区二区| 亚洲美女偷拍久久| 中文字幕制服丝袜成人av| 久久久久久久久久久电影| 欧美一区二区三区婷婷月色| 在线国产亚洲欧美| 91蝌蚪porny九色| 99久久精品免费看国产免费软件| 国产精品888| 国产成人午夜精品5599| 国产精品自产自拍| 国产成人一级电影| 国产精品18久久久| 国产在线一区二区综合免费视频| 婷婷六月综合网| 午夜视频一区在线观看| 日日夜夜精品视频天天综合网| 亚洲电影在线播放| 三级亚洲高清视频| 日本大胆欧美人术艺术动态| 日本不卡不码高清免费观看| 日韩精品视频网| 奇米精品一区二区三区在线观看一| 日韩精品一级二级| 久久精品免费看| 国产一区二区三区在线看麻豆| 国产美女主播视频一区| 国产成人精品综合在线观看| 成人av电影免费在线播放| 成人福利视频在线看| 91麻豆精品视频| 欧美三级蜜桃2在线观看| 91精品国产综合久久久蜜臀粉嫩| 亚洲精品乱码久久久久久| ...xxx性欧美| 亚洲一区在线视频观看| 亚洲国产毛片aaaaa无费看| 午夜精品久久久久久久99樱桃| 日精品一区二区三区| 精品无码三级在线观看视频| 国产99久久久精品| 91麻豆123| 7777女厕盗摄久久久| 26uuu久久综合| 亚洲人精品午夜| 日本欧美大码aⅴ在线播放| 韩国av一区二区| www.色精品| 8x8x8国产精品| 国产亚洲一区字幕| **欧美大码日韩| 日韩1区2区3区| 成人亚洲精品久久久久软件| 色偷偷成人一区二区三区91 | 亚洲人成伊人成综合网小说| 亚洲一区二区精品3399| 久久精品久久精品| av中文一区二区三区| 欧美剧情片在线观看| 久久婷婷综合激情| 亚洲影院免费观看| 久久国产麻豆精品| 91视频免费看| 欧美xxxx老人做受| 亚洲欧美成aⅴ人在线观看| 免费高清成人在线| 91网页版在线| 久久久久亚洲蜜桃| 亚洲1区2区3区4区| 不卡视频免费播放| 日韩区在线观看| 亚洲男人的天堂在线观看| 免费高清在线一区| 日本韩国一区二区三区视频| 欧美不卡视频一区| 亚洲国产另类av| 99久久夜色精品国产网站| 日韩欧美在线影院| 亚洲在线观看免费| 成人一区二区三区视频在线观看 | 亚洲一级片在线观看| 国产麻豆视频一区| 51精品秘密在线观看| 国产精品久久久久久一区二区三区| 日韩和欧美一区二区| 91免费国产视频网站| 国产欧美一区二区精品忘忧草| 男人的j进女人的j一区| 在线观看一区不卡| 亚洲天堂2016| 不卡av免费在线观看| 久久亚洲一区二区三区明星换脸| 欧美性欧美巨大黑白大战| 中文字幕中文字幕在线一区 | 色婷婷综合五月| 国产精品日韩成人| 国产精品影视在线观看| 精品国产乱码久久久久久图片| 亚洲电影第三页| 欧美综合在线视频| 亚洲激情一二三区| 色婷婷狠狠综合| 亚洲色图色小说| 97精品久久久午夜一区二区三区| 中文字幕免费在线观看视频一区| 国产乱国产乱300精品| 精品国产伦一区二区三区观看体验 | 1024成人网| 成+人+亚洲+综合天堂| 中文字幕日韩一区二区| 成人国产在线观看| 亚洲视频在线观看三级| 色综合久久久久久久久久久| 亚洲一级二级在线| 一区二区三区在线视频观看| 色综合久久久网| 五月天婷婷综合| 精品88久久久久88久久久| 国产91在线|亚洲| 亚洲综合色成人| 久久久久久久久久久黄色| 91毛片在线观看| 精品在线亚洲视频| 日日骚欧美日韩| 欧美日韩成人综合天天影院| 日韩 欧美一区二区三区| 欧美高清视频不卡网| 综合自拍亚洲综合图不卡区| 欧美日韩综合在线| 丁香亚洲综合激情啪啪综合| 国产99精品在线观看| 欧美高清hd18日本| 亚洲欧美在线视频观看| 欧美人伦禁忌dvd放荡欲情| 日韩精品每日更新| 亚洲色图丝袜美腿| 欧美日韩在线亚洲一区蜜芽| 日本中文字幕不卡| 久久色.com| av网站一区二区三区| 香蕉久久夜色精品国产使用方法| 91精品国产91综合久久蜜臀| 韩国三级在线一区| 中文字幕亚洲在| 欧美日韩aaa| 国产毛片精品视频| 亚洲欧洲国产日韩| 欧美日韩国产大片| 国产福利一区二区三区视频| 亚洲天堂a在线| 欧美一级欧美三级| 成人网页在线观看| 偷拍一区二区三区四区| 久久久久久9999| 欧美性淫爽ww久久久久无| 麻豆一区二区三| 中文字幕视频一区| 欧美一区二区三区系列电影| 国产.欧美.日韩| 一区二区三区日韩欧美精品 | 欧美一区二区女人| 成人av电影免费观看| 日韩精品欧美精品| 中文字幕av一区二区三区高| 欧美色综合天天久久综合精品| 国内精品久久久久影院色| 伊人性伊人情综合网| 久久免费美女视频| 欧美日韩一区小说| 国产成人亚洲综合a∨猫咪| 午夜天堂影视香蕉久久| 欧美激情在线一区二区三区| 欧美日韩亚洲丝袜制服| 成人三级在线视频| 蜜芽一区二区三区| 亚洲精品视频一区| 久久久久99精品国产片| 91麻豆精品国产自产在线 | av电影天堂一区二区在线观看| 亚洲小少妇裸体bbw| 欧美激情综合五月色丁香 | 欧美一级片在线观看| 一本大道久久a久久综合| 国产美女精品在线|