Ignore:
Timestamp:
2011-11-19T22:27:22+01:00 (13 years ago)
Author:
bastiK
Message:

history browser: changed selection of 2 compared version. WAS: double click and single click. NOW: 2 rows of radio buttons (inspired by Mediawiki)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/history/HistoryBrowserModel.java

    r4566 r4598  
    410410        @Override
    411411        public Object getValueAt(int row, int column) {
    412             if(history == null)
     412            switch (column) {
     413            case 0:
     414                return isReferencePointInTime(row);
     415            case 1:
     416                return isCurrentPointInTime(row);
     417            case 2:
     418                if(history == null)
     419                    return null;
     420                if (row < history.getNumVersions())
     421                    return history.get(row);
     422                if (row == history.getNumVersions())
     423                    return latest;
    413424                return null;
    414             if (row < history.getNumVersions())
    415                 return history.get(row);
    416             if (row == history.getNumVersions())
    417                 return latest;
     425            }
    418426            return null;
    419427        }
    420428
    421429        @Override
     430        public void setValueAt(Object aValue, int row, int column) {
     431            if (!((Boolean) aValue)) return;
     432            switch (column) {
     433            case 0:
     434                setReferencePointInTime(row);
     435                break;
     436            case 1:
     437                setCurrentPointInTime(row);
     438                break;
     439            }
     440            fireTableDataChanged();
     441        }
     442
     443        @Override
    422444        public boolean isCellEditable(int row, int column) {
    423             return false;
     445            return column < 2;
    424446        }
    425447
     
    459481        }
    460482
     483        public boolean isCurrentPointInTime(int row) {
     484            if (history == null) return false;
     485            if (row == history.getNumVersions())
     486                return latest == current;
     487            if (row < 0 || row > history.getNumVersions()) return false;
     488            HistoryOsmPrimitive p = history.get(row);
     489            return p == current;
     490        }
     491
    461492        public HistoryOsmPrimitive getPrimitive(int row) {
    462493            return isLatest(row) ? latest : history.get(row);
     
    476507        @Override
    477508        public int getColumnCount() {
    478             return 1;
     509            return 3;
    479510        }
    480511    }
Note: See TracChangeset for help on using the changeset viewer.