Java tutorial
/* * Copyright 2015 Torridity. * * Licensed 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 de.tor.tribes.util; import java.util.List; import javax.swing.SortOrder; import javax.swing.table.TableColumn; import org.apache.commons.configuration2.Configuration; import org.apache.commons.configuration2.ex.ConversionException; import org.jdesktop.swingx.JXTable; import org.jdesktop.swingx.table.TableColumnExt; import org.jdesktop.swingx.table.TableColumnModelExt; /** * * @author Torridity */ public class PropertyHelper { public static void storeTableProperties(JXTable pTable, Configuration pConfig, String pPrefix) { List<TableColumn> cols = ((TableColumnModelExt) pTable.getColumnModel()).getColumns(true); for (TableColumn c : cols) { TableColumnExt col = (TableColumnExt) c; String title = col.getTitle(); pConfig.setProperty(pPrefix + ".table.col." + title + ".width", col.getWidth()); pConfig.setProperty(pPrefix + ".table.col." + title + ".visible", col.isVisible()); } int sortedCol = pTable.getSortedColumnIndex(); if (sortedCol < 0) { return; } pConfig.setProperty(pPrefix + ".table.sort.col", sortedCol); int sortOrder = 0; switch (pTable.getSortOrder(sortedCol)) { case ASCENDING: sortOrder = 1; break; case DESCENDING: sortOrder = -1; break; default: sortOrder = 0; } pConfig.setProperty(pPrefix + ".table.sort.order", sortOrder); pConfig.setProperty(pPrefix + ".table.horizontal.scroll", pTable.isHorizontalScrollEnabled()); } public static void restoreTableProperties(JXTable pTable, Configuration pConfig, String pPrefix) { //set col width List<TableColumn> cols = ((TableColumnModelExt) pTable.getColumnModel()).getColumns(true); for (TableColumn c : cols) { TableColumnExt col = (TableColumnExt) c; String title = col.getTitle(); try { col.setPreferredWidth( pConfig.getInteger(pPrefix + ".table.col." + title + ".width", col.getWidth())); } catch (ConversionException ignored) { } try { col.setVisible(pConfig.getBoolean(pPrefix + ".table.col." + title + ".visible", true)); } catch (ConversionException ce) { col.setVisible(true); } } SortOrder sortOrder = SortOrder.UNSORTED; int iSortOrder = 0; try { iSortOrder = pConfig.getInteger(pPrefix + ".table.sort.order", 0); } catch (ConversionException ignored) { } switch (iSortOrder) { case 1: sortOrder = SortOrder.ASCENDING; break; case -1: sortOrder = SortOrder.DESCENDING; break; default: sortOrder = SortOrder.UNSORTED; } Boolean scroll = false; try { scroll = pConfig.getBoolean(pPrefix + ".table.horizontal.scroll", false); } catch (ConversionException ignored) { } pTable.setHorizontalScrollEnabled(scroll); Integer orderCol = 0; try { orderCol = pConfig.getInteger(pPrefix + ".table.sort.col", 0); } catch (ConversionException ignored) { } try { pTable.setSortOrder(orderCol.intValue(), sortOrder); } catch (IndexOutOfBoundsException ignored) { } } }