Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.plugin / org.gvsig.app.document.table.app / org.gvsig.app.document.table.app.mainplugin / src / main / java / org / gvsig / app / extension / TableFieldOperations.java @ 40558

History | View | Annotate | Download (3.72 KB)

1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2013 gvSIG Association.
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 3
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24
package org.gvsig.app.extension;
25

    
26
import org.gvsig.andami.IconThemeHelper;
27
import org.gvsig.andami.PluginServices;
28
import org.gvsig.andami.plugins.Extension;
29
import org.gvsig.andami.ui.mdiManager.IWindow;
30
import org.gvsig.app.project.documents.table.gui.FeatureTableDocumentPanel;
31
import org.gvsig.fmap.dal.exception.DataException;
32
import org.gvsig.fmap.mapcontrol.dal.feature.swing.table.ConfigurableFeatureTableModel;
33
import org.gvsig.tools.exception.BaseException;
34

    
35
/**
36
 * Ascending or descending order operations.
37
 * 
38
 * @author Vicente Caballero Navarro
39
 */
40
public class TableFieldOperations extends Extension {
41

    
42
    private FeatureTableDocumentPanel table = null;
43

    
44
    /**
45
     * @see org.gvsig.andami.plugins.IExtension#initialize()
46
     */
47
    public void initialize() {
48
        IconThemeHelper.registerIcon("action", "table-order-desc", this);
49
        IconThemeHelper.registerIcon("action", "table-order-asc", this);
50
    }
51

    
52
    /**
53
     * @see org.gvsig.andami.plugins.IExtension#execute(java.lang.String)
54
     */
55
    public void execute(String actionCommand) {
56
        doExecute(actionCommand, table);
57
        table.getModel().setModified(true);
58
    }
59

    
60
    /**
61
     * "execute" method acction
62
     * 
63
     * @param actionCommand
64
     *            The acction command that executes this method
65
     * @param table
66
     *            Table to operate
67
     */
68
    protected void doExecute(String actionCommand,
69
        FeatureTableDocumentPanel table) {
70
        // FIXME
71
        ConfigurableFeatureTableModel cftm =
72
            table.getTablePanel().getTableModel();
73
        try {
74
            if ("table-order-asc".equals(actionCommand)) {
75
                cftm.orderByColumn(table.getTablePanel().getTable()
76
                    .getSelectedColumnsAttributeDescriptor()[0].getName(), true);
77
            } else
78
                if ("table-order-desc".equals(actionCommand)) {
79
                    cftm.orderByColumn(table.getTablePanel().getTable()
80
                        .getSelectedColumnsAttributeDescriptor()[0].getName(),
81
                        false);
82
                }
83
        } catch (BaseException e) {
84
            e.printStackTrace();
85
        }
86
    }
87

    
88
    /**
89
     * @see org.gvsig.andami.plugins.IExtension#isEnabled()
90
     */
91
    public boolean isEnabled() {
92
        try {
93
            return (table.getTablePanel().getTable().getSelectedColumnCount() == 1);
94
        } catch (DataException e) {
95
            e.printStackTrace();
96
        }
97
        return false;
98
    }
99

    
100
    /**
101
     * @see org.gvsig.andami.plugins.IExtension#isVisible()
102
     */
103
    public boolean isVisible() {
104
        IWindow v = PluginServices.getMDIManager().getActiveWindow();
105
        if (v != null && v instanceof FeatureTableDocumentPanel) {
106
            table = (FeatureTableDocumentPanel) v;
107
            return true;
108
        }
109
        return false;
110
    }
111

    
112
}