in src/main/java/org/apache/log4j/chainsaw/LogPanel.java [2005:2206]
private void loadSettings() {
logger.info( "Loading settings for panel with identifier {}", identifier );
AbstractConfiguration config = m_configuration;
Iterator<String> iter = config.getKeys();
while( iter.hasNext() ){
logger.debug( "Key: {}", iter.next() );
}
lowerPanelDividerLocation = config.getInt( "logpanel.lowerPanelDividerLocation" );
int treeDividerLocation = config.getInt( "logpanel.treeDividerLocation" );
String conversionPattern = config.getString( "logpanel.conversionPattern", DefaultLayoutFactory.getDefaultPatternLayout() );
String[] savedComboSettings = config.getStringArray("logpanel.savedComboSettings" );
for( String comboSetting : savedComboSettings ){
filterCombo.insertItemAt(comboSetting, 0);
findCombo.insertItemAt(comboSetting, 0);
}
String[] columnsOrder = config.getStringArray( "table.columns.order" );
Integer[] columnWidths = (Integer[])config.getArray(Integer.class, "table.columns.widths" );
List<TableColumn> columns = new ArrayList<>();
for( int index = 0; index < columnsOrder.length; index++ ){
int columnIndex = 0;
for( String s : ChainsawColumns.getColumnsNames() ){
if( s.equals( columnsOrder[index] ) ){
logger.debug( "Loading column {}. Index of data: {}", columnsOrder[index], columnIndex );
TableColumn column = new TableColumn(columnIndex);
column.setHeaderValue(columnsOrder[index]);
column.setPreferredWidth(columnWidths[index]);
columns.add(column);
break;
}
columnIndex++;
}
// preferenceModel.addColumn(column);
// preferenceModel.setColumnVisible(columnsOrder[index], true);
}
TableColumnModel columnModel = table.getColumnModel();
//remove previous columns
while (columnModel.getColumnCount() > 0) {
columnModel.removeColumn(columnModel.getColumn(0));
}
//add columns in order
for (TableColumn col : columns) {
columnModel.addColumn(col);
}
// TableColumnModel searchColumnModel = searchTable.getColumnModel();
// //remove previous columns
// while (searchColumnModel.getColumnCount() > 0) {
// searchColumnModel.removeColumn(searchColumnModel.getColumn(0));
// }
// //add visible column order columns
// for (Object o : preferenceModel.getVisibleColumnOrder()) {
// TableColumn col = (TableColumn) o;
// searchColumnModel.addColumn(col);
// }
boolean isCyclic = config.getBoolean( "logpanel.cyclic" );
tableModel.setCyclic( isCyclic );
searchModel.setCyclic( isCyclic );
lowerPanel.setDividerLocation(config.getInt( "logpanel.lowerPanelDividerLocation" ));
nameTreeAndMainPanelSplit.setDividerLocation(config.getInt( "logpanel.treeDividerLocation" ));
detailLayout.setConversionPattern(conversionPattern);
undockedFrame.setLocation(0, 0);
undockedFrame.setSize(new Dimension(1024, 768));
logTreePanel.ignore(Arrays.asList(config.getStringArray("logpanel.hiddenLoggers")));
logTreePanel.setHiddenExpression(config.getString("logpanel.hiddenExpression"));
logTreePanel.setAlwaysDisplayExpression(config.getString("logpanel.alwaysDisplayExpression"));
String clearTableExpression = config.getString("logpanel.clearTableExpression", null);
if (clearTableExpression != null && clearTableExpression.length() > 1) {
try {
clearTableExpressionRule = ExpressionRule.getRule(clearTableExpression);
} catch (Exception e) {
clearTableExpressionRule = null;
}
}
AbstractConfiguration configuration = SettingsManager.getInstance().getSettingsForReceiverTab(identifier);
if( configuration.getBoolean( "color.rules.default", true ) ){
colorizer = m_globalColorizer;
}else{
setRuleColorizer(new RuleColorizer());
colorizer.setConfiguration(configuration);
colorizer.loadColorSettings();
}
// if (xmlFile.exists()) {
// XStream stream = buildXStreamForLogPanelPreference();
// ObjectInputStream in = null;
// try {
// logger.info("configuration for panel exists: " + xmlFile + " - " + identifier + ", loading");
// FileReader r = new FileReader(xmlFile);
// in = stream.createObjectInputStream(r);
// LogPanelPreferenceModel storedPrefs = (LogPanelPreferenceModel) in.readObject();
// lowerPanelDividerLocation = in.readInt();
// int treeDividerLocation = in.readInt();
// String conversionPattern = in.readObject().toString();
// //this version number is checked to identify whether there is a Vector comming next
// int versionNumber = 0;
// try {
// versionNumber = in.readInt();
// } catch (EOFException eof) {
// }
//
// Vector savedVector;
// //read the vector only if the version number is greater than 0. higher version numbers can be
// //used in the future to save more data structures
// if (versionNumber > 0) {
// savedVector = (Vector) in.readObject();
// for (Object item : savedVector) {
// //insert each row at index zero (so last row in vector will be row zero)
// filterCombo.insertItemAt(item, 0);
// findCombo.insertItemAt(item, 0);
// }
// if (versionNumber > 1) {
// //update prefModel columns to include defaults
// int index = 0;
// String columnOrder = event.getSetting(TABLE_COLUMN_ORDER);
// StringTokenizer tok = new StringTokenizer(columnOrder, ",");
// while (tok.hasMoreElements()) {
// String element = tok.nextElement().toString().trim().toUpperCase();
// TableColumn column = new TableColumn(index++);
// column.setHeaderValue(element);
// preferenceModel.addColumn(column);
// }
//
// TableColumnModel columnModel = table.getColumnModel();
// //remove previous columns
// while (columnModel.getColumnCount() > 0) {
// columnModel.removeColumn(columnModel.getColumn(0));
// }
// //add visible column order columns
// for (Object o1 : preferenceModel.getVisibleColumnOrder()) {
// TableColumn col = (TableColumn) o1;
// columnModel.addColumn(col);
// }
//
// TableColumnModel searchColumnModel = searchTable.getColumnModel();
// //remove previous columns
// while (searchColumnModel.getColumnCount() > 0) {
// searchColumnModel.removeColumn(searchColumnModel.getColumn(0));
// }
// //add visible column order columns
// for (Object o : preferenceModel.getVisibleColumnOrder()) {
// TableColumn col = (TableColumn) o;
// searchColumnModel.addColumn(col);
// }
//
// preferenceModel.apply(storedPrefs);
// } else {
// loadDefaultColumnSettings(event);
// }
// //ensure tablemodel cyclic flag is updated
// //may be panel configs that don't have these values
// tableModel.setCyclic(preferenceModel.isCyclic());
// searchModel.setCyclic(preferenceModel.isCyclic());
// lowerPanel.setDividerLocation(lowerPanelDividerLocation);
// nameTreeAndMainPanelSplit.setDividerLocation(treeDividerLocation);
// detailLayout.setConversionPattern(conversionPattern);
// undockedFrame.setLocation(0, 0);
// undockedFrame.setSize(new Dimension(1024, 768));
// } else {
// loadDefaultColumnSettings(event);
// }
// } catch (Exception e) {
// logger.info("unable to load configuration for panel: " + xmlFile + " - " + identifier + " - using default settings", e);
// loadDefaultColumnSettings(event);
// // TODO need to log this..
// } finally {
// if (in != null) {
// try {
// in.close();
// } catch (IOException ioe) {
// }
// }
// }
// } else {
// //not setting lower panel divider location here - will do that after the UI is visible
// loadDefaultColumnSettings(event);
// }
// //ensure tablemodel cyclic flag is updated
// tableModel.setCyclic(preferenceModel.isCyclic());
// searchModel.setCyclic(preferenceModel.isCyclic());
// logTreePanel.ignore(preferenceModel.getHiddenLoggers());
// logTreePanel.setHiddenExpression(preferenceModel.getHiddenExpression());
// logTreePanel.setAlwaysDisplayExpression(preferenceModel.getAlwaysDisplayExpression());
// if (preferenceModel.getClearTableExpression() != null) {
// try {
// clearTableExpressionRule = ExpressionRule.getRule(preferenceModel.getClearTableExpression());
// } catch (Exception e) {
// clearTableExpressionRule = null;
// }
// }
//
// //attempt to load color settings - no need to URL encode the identifier
// colorizer.loadColorSettings(identifier);
}