Revision 41611

View differences:

trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.geometry/org.gvsig.fmap.geometry.generalpath/src/main/java/org/gvsig/fmap/geom/generalpath/gputils/DefaultGeneralPathX.java
80 80
 * @deprecated
81 81
 *             use the geometry methods
82 82
 */
83
public class DefaultGeneralPathX implements  Shape, Cloneable, Serializable, IGeneralPathX { 
83
public class DefaultGeneralPathX extends GeneralPathX implements  Shape, Cloneable, Serializable { 
84 84

  
85 85
    /**
86 86
     * Default serial version ID
......
117 117
    static final int EXPAND_MAX = 500;
118 118

  
119 119
    private  DefaultGeneralPathX() {
120
        super(false);
120 121
        setWindingRule(WIND_EVEN_ODD);
121 122
    }
122 123
    /**
......
130 131
     * @see #WIND_NON_ZERO
131 132
     */
132 133
    public DefaultGeneralPathX(int rule) {
134
        super(false);
133 135
        setWindingRule(rule);
134 136
    }
135 137

  
......
759 761
        double[] pointCoords, int numCoords) {
760 762

  
761 763
        // used to construct from native
764
        super(false);
762 765

  
763 766
        this.windingRule = windingRule;
764 767
        this.setPointTypes(pointTypes);
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.fmap.control/src/main/java/org/gvsig/fmap/mapcontrol/dal/feature/swing/FeatureTablePanel.java
28 28
package org.gvsig.fmap.mapcontrol.dal.feature.swing;
29 29

  
30 30
import java.awt.BorderLayout;
31
import static java.awt.BorderLayout.CENTER;
32
import java.awt.Component;
33
import javax.swing.AbstractListModel;
34
import javax.swing.JButton;
31 35

  
32 36
import javax.swing.JLabel;
37
import javax.swing.JList;
33 38
import javax.swing.JPanel;
34 39
import javax.swing.JScrollPane;
40
import javax.swing.JTable;
41
import javax.swing.ListCellRenderer;
42
import javax.swing.ListModel;
43
import javax.swing.UIManager;
44
import javax.swing.table.JTableHeader;
35 45

  
36 46
import org.gvsig.fmap.dal.DataStoreNotification;
37 47
import org.gvsig.fmap.dal.exception.DataException;
......
226 236
     */
227 237
    private JScrollPane getJScrollPane() throws DataException {
228 238
        if (jScrollPane == null) {
239
            FeatureTable theTable = getTable();
229 240
            jScrollPane = new JScrollPane();
230
            jScrollPane.setViewportView(getTable());
241
            jScrollPane.setViewportView(theTable);
242
            jScrollPane.setRowHeaderView(getRowHeader(theTable));
231 243
        }
232 244
        return jScrollPane;
233 245
    }
234 246

  
247
    private static class RowHeaderRenderer extends JButton implements ListCellRenderer {
248

  
249
        RowHeaderRenderer(JTable table) {
250
          JTableHeader header = table.getTableHeader();
251
          setOpaque(true);
252
          setBorder(UIManager.getBorder("TableHeader.cellBorder"));
253
          setHorizontalAlignment(CENTER);
254
          setForeground(header.getForeground());
255
          setBackground(header.getBackground());
256
          setFont(header.getFont());
257
        }
258

  
259
        public Component getListCellRendererComponent(JList list, Object value,
260
            int index, boolean isSelected, boolean cellHasFocus) {
261
          setText((value == null) ? "" : value.toString());
262
          return this;
263
        }
264
    }
265
    
266
    private JList getRowHeader(final FeatureTable theTable) {
267
      
268
      ListModel lm = new AbstractListModel() {
269
        public int getSize() {
270
          return theTable.getRowCount();
271
        }
272

  
273
        public Object getElementAt(int index) {
274
          return String.valueOf(index+1);
275
        }
276
      };
277
      JList rowHeader = new JList(lm);
278
      rowHeader.setCellRenderer(new RowHeaderRenderer(theTable));
279
      rowHeader.setFixedCellWidth(50);
280
      rowHeader.setFixedCellHeight(table.getRowHeight()); //+ table.getRowMargin());
281
      return rowHeader;
282
    }
283
    
235 284
    public void update(Observable observable, Object notification) {
236 285
        // If selection changes from nothing selected to anything selected
237 286
        // or the reverse, update selection info

Also available in: Unified diff