Ignore:
Timestamp:
2009-09-16T17:45:50+02:00 (17 years ago)
Author:
stoecker
Message:

see #3475 - patch by Petr Dlouhý - cleanups

Location:
trunk/src/org/openstreetmap/josm/gui/dialogs
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/dialogs/FilterDialog.java

    r2125 r2145  
    66import static org.openstreetmap.josm.tools.I18n.trn;
    77
     8import javax.swing.JCheckBox;
    89import javax.swing.JPanel;
    910import javax.swing.JTable;
    1011import javax.swing.table.JTableHeader;
     12import javax.swing.table.DefaultTableCellRenderer;
     13import javax.swing.event.TableModelListener;
     14import javax.swing.event.TableModelEvent;
     15import javax.swing.table.TableCellRenderer;
    1116import javax.swing.ListSelectionModel;
    1217import javax.swing.JPopupMenu;
    13 import javax.swing.table.AbstractTableModel;
    1418import javax.swing.JScrollPane;
    1519
     20import java.awt.Component;
    1621import java.awt.FlowLayout;
    1722import java.awt.BorderLayout;
    … …  
    3843 * @author Petr_Dlouhý
    3944 */
    40 public class FilterDialog extends ToggleDialog implements DataChangeListener, LayerChangeListener {
     45public class FilterDialog extends ToggleDialog implements DataChangeListener, LayerChangeListener, TableModelListener {
    4146    private JTable userTable;
    4247    private Filters filters = new Filters();
    … …  
    121126
    122127    protected String[] columnToolTips = {
    123         tr("Filter elements"),
    124         tr("Disable elements"),
     128        tr("Enable filter"),
     129        tr("Hide elements"),
     130        null,
    125131        tr("Apply also for children"),
    126132        tr("Inverse filter"),
    127         null,
    128133        tr("Filter mode")
    129134    };
    … …  
    145150           }
    146151        };   
    147  
     152
     153        filters.addTableModelListener(this);
     154
    148155        userTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    149156
    … …  
    160167        userTable.getColumnModel().getColumn(5).setResizable(false);
    161168
     169        userTable.setDefaultRenderer(Boolean.class, new BooleanRenderer());
     170        userTable.setDefaultRenderer(String.class, new StringRenderer());
     171
     172        tableChanged(null);
     173
    162174        pnl.add(new JScrollPane(userTable), BorderLayout.CENTER);
    163175
    … …  
    187199      filters.filter();
    188200   }
     201
     202   class StringRenderer extends DefaultTableCellRenderer {
     203      public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus,int row,int column) {
     204         Filters model = (Filters)table.getModel();
     205         Component cell = (Component)super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
     206         cell.setEnabled(model.isCellEnabled(row, column));
     207         return cell;
     208      }
     209   }
     210
     211   class BooleanRenderer extends JCheckBox implements TableCellRenderer {
     212      public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus,int row,int column) {
     213         Filters model = (Filters)table.getModel();
     214         setSelected((Boolean)value);
     215         setEnabled(model.isCellEnabled(row, column));
     216         setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
     217         return this;
     218      }
     219   }
     220
     221   public void tableChanged(TableModelEvent e){
     222      setTitle("Filter Hidden:" + filters.hiddenCount + " Disabled:" + filters.disabledCount);
     223   }
    189224}
  • trunk/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java

    r2120 r2145  
    750750        if (Main.main.getCurrentDataSet() != null) {
    751751            for (Relation r : Main.main.getCurrentDataSet().relations) {
    752                 if (!r.isFiltered() && r.isUsable()) {
     752                if (!r.isFiltered() && !r.incomplete && !r.isDeleted()) {
    753753                    for (RelationMember m : r.getMembers()) {
    754754                        if (newSelection.contains(m.getMember())) {
Note: See TracChangeset for help on using the changeset viewer.