private void loadSettings()

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);
    }