Revision 5665 trunk/applications/appgvSIG/src/com/iver/cit/gvsig/gui/Table.java
Table.java | ||
---|---|---|
49 | 49 |
import java.awt.event.MouseEvent; |
50 | 50 |
import java.beans.PropertyChangeEvent; |
51 | 51 |
import java.beans.PropertyChangeListener; |
52 |
import java.io.File; |
|
53 | 52 |
import java.io.IOException; |
54 | 53 |
import java.text.ParseException; |
55 | 54 |
import java.util.BitSet; |
... | ... | |
81 | 80 |
import org.apache.log4j.Logger; |
82 | 81 |
|
83 | 82 |
import com.hardcode.driverManager.DriverLoadException; |
84 |
import com.hardcode.gdbms.engine.data.DataSourceFactory; |
|
85 | 83 |
import com.hardcode.gdbms.engine.data.driver.DriverException; |
86 | 84 |
import com.hardcode.gdbms.engine.values.Value; |
87 | 85 |
import com.hardcode.gdbms.engine.values.ValueFactory; |
... | ... | |
109 | 107 |
import com.iver.cit.gvsig.fmap.edition.IWriter; |
110 | 108 |
import com.iver.cit.gvsig.fmap.edition.VectorialEditableAdapter; |
111 | 109 |
import com.iver.cit.gvsig.fmap.edition.commands.CommandListener; |
112 |
import com.iver.cit.gvsig.fmap.edition.writers.gdbms.GdbmsWriter; |
|
113 | 110 |
import com.iver.cit.gvsig.fmap.layers.FLayer; |
114 | 111 |
import com.iver.cit.gvsig.fmap.layers.FLyrVect; |
115 | 112 |
import com.iver.cit.gvsig.fmap.layers.SelectableDataSource; |
... | ... | |
593 | 590 |
updating = true; |
594 | 591 |
((DataSourceDataModel) getTable().getModel()).fireTableDataChanged(); |
595 | 592 |
updating = false; |
593 |
|
|
596 | 594 |
updateSelection(); |
597 | 595 |
} |
598 | 596 |
|
... | ... | |
753 | 751 |
public void stopEditing() { |
754 | 752 |
try { |
755 | 753 |
this.stopEditingCell(); |
756 |
|
|
754 |
|
|
757 | 755 |
FLyrVect lyr = (FLyrVect) getModel().getAssociatedTable(); |
758 | 756 |
|
759 | 757 |
if ((lyr != null) && |
... | ... | |
773 | 771 |
IWriter writer = w.getWriter(); |
774 | 772 |
if (writer == null) |
775 | 773 |
{ |
776 |
NotificationManager.addError("No existe driver de escritura para la tabla"
|
|
774 |
NotificationManager.addError("No existe driver de escritura para la tabla" |
|
777 | 775 |
+ getModel().getName(), new EditionException()); |
778 | 776 |
} |
779 | 777 |
else |
780 | 778 |
{ |
781 | 779 |
ITableDefinition tableDef = ies.getTableDefinition(); |
782 | 780 |
writer.initialize(tableDef); |
783 |
|
|
781 |
|
|
784 | 782 |
ies.stopEdition(writer,EditionEvent.ALPHANUMERIC); |
785 |
}
|
|
783 |
} |
|
786 | 784 |
} |
787 | 785 |
|
788 | 786 |
/* |
... | ... | |
799 | 797 |
|
800 | 798 |
gdbmswriter.postProcess(); |
801 | 799 |
*/ |
802 |
|
|
800 |
|
|
803 | 801 |
} |
804 | 802 |
|
805 | 803 |
} catch (Exception e) { |
... | ... | |
905 | 903 |
* @throws IOException |
906 | 904 |
*/ |
907 | 905 |
public void addRow(IRow[] rows) throws DriverIOException, IOException { |
908 |
try { |
|
906 |
IEditableSource ies=getModel().getModelo(); |
|
907 |
try { |
|
909 | 908 |
if (rows == null) { |
909 |
|
|
910 | 910 |
if (getModel().getAssociatedTable()!=null){ |
911 | 911 |
JOptionPane.showMessageDialog((Component)PluginServices.getMainFrame(),"No se puede a?adir una fila a una tabla asociada a una capa."); |
912 | 912 |
return; |
... | ... | |
920 | 920 |
values[i]=ValueFactory.createNullValue(); |
921 | 921 |
} |
922 | 922 |
row = new DefaultRow(values); |
923 |
getModel().getModelo().addRow(row,"Fila en blanco",EditionEvent.ALPHANUMERIC);
|
|
923 |
ies.addRow(row,"Fila en blanco",EditionEvent.ALPHANUMERIC);
|
|
924 | 924 |
} else { |
925 |
getModel().getModelo().startComplexRow();
|
|
925 |
ies.startComplexRow();
|
|
926 | 926 |
for (int i = 0; i < rows.length; i++) { |
927 |
getModel().getModelo().addRow(((IRowEdited) rows[i]).getLinkedRow(),"Pegar filas",EditionEvent.ALPHANUMERIC);
|
|
927 |
ies.addRow(((IRowEdited) rows[i]).getLinkedRow(),"Pegar filas",EditionEvent.ALPHANUMERIC);
|
|
928 | 928 |
} |
929 |
getModel().getModelo().endComplexRow();
|
|
929 |
ies.endComplexRow();
|
|
930 | 930 |
} |
931 | 931 |
} catch (DriverException e) { |
932 | 932 |
// TODO Auto-generated catch block |
... | ... | |
1141 | 1141 |
return null; |
1142 | 1142 |
} |
1143 | 1143 |
col--; |
1144 |
|
|
1144 |
int numRow; |
|
1145 |
if (orderIndexes != null && row < orderIndexes.length) { |
|
1146 |
numRow=(int)orderIndexes[row]; |
|
1147 |
}else { |
|
1148 |
numRow=row; |
|
1149 |
} |
|
1145 | 1150 |
try { |
1146 |
if (orderIndexes != null) { |
|
1147 |
Object obj =null; |
|
1148 |
|
|
1149 |
IRowEdited rowEdited=des.getRow((int)orderIndexes[row]); |
|
1150 |
obj= rowEdited.getAttribute(mapping[col]); |
|
1151 |
Object obj =null; |
|
1152 |
IRowEdited rowEdited=des.getRow(numRow); |
|
1153 |
obj= rowEdited.getAttribute(mapping[col]); |
|
1151 | 1154 |
return obj; |
1152 |
} else { |
|
1153 |
Object obj =null; |
|
1154 |
|
|
1155 |
IRowEdited rowEdited=des.getRow(row); |
|
1156 |
obj= rowEdited.getAttribute(mapping[col]); |
|
1157 |
//obj = sds.getFieldValue(row, col); |
|
1158 |
return obj; |
|
1159 |
} |
|
1160 |
} catch (DriverIOException e1) { |
|
1161 |
return ValueFactory.createValue("").toString(); |
|
1162 |
} catch (IOException e1) { |
|
1163 |
return ValueFactory.createValue("").toString(); |
|
1164 |
} |
|
1155 |
} catch (DriverIOException e1) { |
|
1156 |
return ValueFactory.createValue("").toString(); |
|
1157 |
} catch (IOException e1) { |
|
1158 |
return ValueFactory.createValue("").toString(); |
|
1159 |
} |
|
1165 | 1160 |
} |
1166 | 1161 |
|
1167 | 1162 |
/** |
... | ... | |
1193 | 1188 |
throw new UnsupportedOperationException("Row Number is a read-only column"); |
1194 | 1189 |
columnIndex--; |
1195 | 1190 |
Value v; |
1196 |
if (getValueAt(rowIndex,columnIndex+1)==null || getValueAt(rowIndex,columnIndex+1).toString().equals(aValue)) |
|
1191 |
int numRow; |
|
1192 |
if (orderIndexes != null) { |
|
1193 |
numRow=(int)orderIndexes[rowIndex]; |
|
1194 |
}else { |
|
1195 |
numRow=rowIndex; |
|
1196 |
} |
|
1197 |
if (getValueAt(rowIndex,columnIndex+1)==null || getValueAt(rowIndex,columnIndex+1).toString().equals(aValue)) |
|
1197 | 1198 |
return; |
1198 | 1199 |
try { |
1199 | 1200 |
v = ValueFactory.createValueByType(aValue.toString(), |
1200 | 1201 |
des.getRecordset().getFieldType(columnIndex)); |
1201 | 1202 |
|
1202 |
IRowEdited row = des.getRow(rowIndex); //.getAttribute(columnIndex);
|
|
1203 |
IRowEdited row = des.getRow(numRow); //.getAttribute(columnIndex);
|
|
1203 | 1204 |
Value[] values = row.getAttributes(); |
1204 | 1205 |
values[columnIndex] = v; |
1205 | 1206 |
|
... | ... | |
1212 | 1213 |
newRow = new DefaultRow(values,row.getID()); |
1213 | 1214 |
} |
1214 | 1215 |
|
1215 |
des.modifyRow(rowIndex, newRow,"Editar valor", EditionEvent.ALPHANUMERIC);
|
|
1216 |
des.modifyRow(numRow, newRow,"Editar valor", EditionEvent.ALPHANUMERIC);
|
|
1216 | 1217 |
} catch (DriverException e1) { |
1217 | 1218 |
throw new RuntimeException(e1); |
1218 | 1219 |
} catch (ParseException e) { |
... | ... | |
1533 | 1534 |
frame.getContentPane().add(tf); |
1534 | 1535 |
frame.show(true); |
1535 | 1536 |
} |
1536 |
|
|
1537 |
|
|
1537 | 1538 |
public void stopEditingCell() { |
1538 | 1539 |
if (table.isEditing()) { |
1539 | 1540 |
// TODO: finalizar la edicion de la columna |
1540 | 1541 |
this.table.getCellEditor().stopCellEditing(); |
1541 | 1542 |
this.refresh(); |
1542 | 1543 |
} |
1543 |
|
|
1544 |
|
|
1544 | 1545 |
} |
1545 |
|
|
1546 |
|
|
1546 | 1547 |
public void cancelEditingCell() { |
1547 | 1548 |
if (table.isEditing()) { |
1548 | 1549 |
// TODO: finalizar la edicion de la columna |
1549 | 1550 |
this.table.getCellEditor().cancelCellEditing(); |
1550 | 1551 |
this.refresh(); |
1551 | 1552 |
} |
1552 |
|
|
1553 |
|
|
1553 | 1554 |
} |
1554 | 1555 |
} |
Also available in: Unified diff