Statistics
| Revision:

svn-gvsig-desktop / trunk / extensions / extGraph / src / org / gvsig / graph / gui / wizard / servicearea / NetworkPointsModel.java @ 22182

History | View | Annotate | Download (3.85 KB)

1
package org.gvsig.graph.gui.wizard.servicearea;
2

    
3
import java.util.logging.Logger;
4

    
5
import org.gvsig.graph.core.GvFlag;
6
import org.gvsig.graph.core.Network;
7

    
8

    
9
public class NetworkPointsModel extends AbstractPointsModel {
10
        /**
11
         * 
12
         */
13
        private static final long serialVersionUID = 1694526796604795043L;
14
        
15
        private Network network;
16
                
17
        @SuppressWarnings("unused")
18
        private Logger logger;
19
        
20
        public NetworkPointsModel(Network network){
21
                super();
22
                
23
                this.logger=Logger.getLogger(this.getClass().getName());
24
                
25
                this.network=network;
26
                this.mainCosts=new String[this.getRowCount()];
27
                this.secondaryCosts=new String[this.getRowCount()];
28
                this.bitsetEnabled.set(0, this.getRowCount());
29
        }
30

    
31
        public int getColumnCount() {
32
                return 5;
33
        }
34

    
35
        public int getRowCount() {
36
                return this.network.getFlagsCount();
37
        }
38

    
39
        @SuppressWarnings("unchecked")
40
        public Class getColumnClass(int columnIndex) {
41
                switch(columnIndex){
42
                        case 0:
43
                                return Boolean.class;
44
                        case 1:
45
                                return Integer.class;
46
                        case 2:
47
                                return String.class;
48
                        case 3:
49
                                return String.class;
50
                        case 4:
51
                                return String.class;
52
                        default:
53
                                return String.class;
54
                }
55
        }
56
        
57
        public Object getValueAt(int rowIndex, int columnIndex) {
58
                switch(columnIndex){
59
                        case 0:
60
                                return this.bitsetEnabled.get(rowIndex);
61
                        case 1:
62
                                if(this.getRowCount()>rowIndex)
63
                                        return Integer.valueOf(((GvFlag)this.network.getOriginaFlags().get(rowIndex)).getIdFlag());
64
                                else
65
                                        return null;
66
                        case 2:
67
                                if(rowIndex<this.getRowCount())
68
                                        return ((GvFlag)this.network.getOriginaFlags().get(rowIndex)).getDescription();
69
                                else
70
                                        return "<Error en la obtenci?n>";
71
                        case 3:
72
                                if(this.isUniqueMainCostEnabled()){
73
                                        return this.uniqueMainCosts;
74
                                }
75
                                else{
76
                                        if(rowIndex<this.mainCosts.length){
77
                                                if(this.mainCosts[rowIndex]!=null){
78
                                                        try{
79
                                                                return this.getTotalCosts(this.mainCosts[rowIndex]);
80
                                                        }
81
                                                        catch(NumberFormatException except){
82
                                                                return "";
83
                                                        }
84
                                                }
85
                                                else
86
                                                        return "";
87
                                        }
88
                                        else{
89
                                                return "<Error en la obtenci?n>";
90
                                        }
91
                                }
92
                        case 4:
93
                                if(this.isUniqueSecondaryCostEnabled()){
94
                                        return this.uniqueSecondaryCosts;
95
                                }
96
                                else{
97
                                        if(rowIndex<this.secondaryCosts.length){
98
                                                if(this.secondaryCosts[rowIndex]!=null){
99
                                                        try{
100
                                                                return this.getTotalCosts(this.secondaryCosts[rowIndex]);
101
                                                        }
102
                                                        catch(NumberFormatException except){
103
                                                                return "";
104
                                                        }
105
                                                }
106
                                                else
107
                                                        return "";
108
                                        }
109
                                        else{
110
                                                return "<Error en la obtenci?n>";
111
                                        }
112
                                }
113
                        default:
114
                                return null;
115
                }
116
        }
117

    
118
        public String getColumnName(int column) {
119
                switch(column){
120
                        case 0:
121
                                return "Habilitado";
122
                        case 1:
123
                                return "Id";
124
                        case 2:
125
                                return "Descripci?n";
126
                        case 3:
127
                                return "Coste principal";
128
                        case 4:
129
                                return "Coste secundario";
130
                        default:
131
                                return String.valueOf((char)(65+column)); //ASCII
132
                }                
133
        }
134

    
135
        @Override
136
        public boolean isCellEditable(int rowIndex, int columnIndex) {
137
                switch(columnIndex){
138
                        case 0:
139
                                return true;
140
                        case 1:
141
                                return false;
142
                        case 2:
143
                                return true;
144
                        case 3:
145
                                return false;
146
                        case 4:
147
                                return false;
148
                        default:
149
                                return false;
150
                }
151
        }
152

    
153
        @Override
154
        public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
155
                switch(columnIndex){
156
                        case 0:{
157
                                this.bitsetEnabled.set(rowIndex, ((Boolean)aValue).booleanValue());
158
                                break;
159
                        }
160
                        case 2:{
161
                                if(rowIndex<this.getRowCount())
162
                                        ((GvFlag)this.network.getOriginaFlags().get(rowIndex)).setDescription(String.valueOf(aValue));
163
                                        
164
                                break;
165
                        }
166
                        case 3:{
167
                                if(rowIndex<this.mainCosts.length)
168
                                        this.mainCosts[rowIndex]=String.valueOf(aValue);
169
                                break;
170
                        }
171
                        case 4:{
172
                                if(rowIndex<this.secondaryCosts.length)
173
                                        this.secondaryCosts[rowIndex]=String.valueOf(aValue);
174
                                break;
175
                        }                        
176
                }
177
        }
178
        
179
        public String toString(){
180
                return "Modelo: Red # N?mero de flags: "+this.network.getOriginaFlags().size()+" #";
181
        }
182
}