@Override public void close(ProgressMonitor progressMonitor) throws UnsupportedOperationException, EditableElementException { if(rowSet != null) { try { rowSet.close(); rowSet = null; setOpen(false); } catch (SQLException ex) { throw new EditableElementException(ex); } } }
Lock readLock = activeLayerRowSet.getReadLock(); try { if(readLock.tryLock(TRY_LOCK_TIME, TimeUnit.MILLISECONDS)) { modelRows.add(activeLayerRowSet.getRowId(value)); activeLayerRowSet.setFilter(modelRows); activeLayerRowSet.beforeFirst(); while (activeLayerRowSet.next()){ Primitive p; Geometry geometry = activeLayerRowSet.getGeometry(); if (geometry != null) { p = new Primitive(geometry, activeLayerRowSet.getLong(activeLayerRowSet.getPkName())); Handler[] handlers = p.getHandlers(); currentHandlers.addAll(Arrays.asList(handlers));
public static void deleteUsingRowSet(ReversibleRowSet reversibleRowSet, SortedSet<Long> rowPkToDelete) throws SQLException, InterruptedException { TreeSet<Integer> rowNumberToDelete = new TreeSet<>(reversibleRowSet.getRowNumberFromRowPk(rowPkToDelete)); Lock lock = reversibleRowSet.getReadLock(); if(lock.tryLock(TRY_LOCK_TIME, TimeUnit.SECONDS)) { try { // Rows must be deleted in descending order in order to not introduce shift for (int rowNumber : rowNumberToDelete.descendingSet()) { reversibleRowSet.absolute(rowNumber); reversibleRowSet.deleteRow(); } } finally { lock.unlock(); } } } }
if(activeLayerRowSet != null) { try { activeLayerRowSet.close(); } catch (SQLException ex ) { UILOGGER.error(ex.getLocalizedMessage(), ex); if(rowSet instanceof ReversibleRowSet) { activeLayerRowSet = (ReversibleRowSet)rowSet; activeLayerRowSet.setCommand("SELECT * FROM "+activeLayer.getTableReference()); activeLayerRowSet.execute(); } else { UILOGGER.warn(I18N.tr("Unable to generate edition tool on the table %s for the map editor, edition is deactivated", activeLayer.getTableReference()));
try{ String tablePk = source.getRowSet().getPkName(); if(!tablePk.isEmpty()) { final ReadRowSet rowSet = source.getRowSet(); request.append(" OR"); String fieldName = source.getRowSet().getMetaData().getColumnName(idcol); addFieldWhere(request, fieldName); conditionsCount++;
@Override public void open(ProgressMonitor progressMonitor) throws UnsupportedOperationException, EditableElementException { if(rowSet == null) { try(Connection connection = dataManager.getDataSource().getConnection()) { boolean isH2 = JDBCUtilities.isH2DataBase(connection.getMetaData()); String pkName = MetaData.getPkName(connection, tableReference, true); rowSet = dataManager.createReversibleRowSet(); rowSet.setExcludeGeomFields(excludeGeom); rowSet.initialize(TableLocation.parse(tableReference, isH2).toString(isH2), pkName, progressMonitor); } catch (SQLException | IllegalArgumentException ex) { throw new EditableElementException(ex); } setOpen(true); } }
try { try { ResultSetMetaData meta = table.getRowSet().getMetaData(); for(int col=1; col < meta.getColumnCount();col++) { columnNames.add(meta.getColumnName(col)); table.open(pm); try { ResultSetMetaData meta = table.getRowSet().getMetaData(); for(int col=1; col < meta.getColumnCount();col++) { if(col <= columnNames.size()) {
@Override public SortedSet<Integer> getSelectionTableRow() throws EditableElementException { SortedSet<Integer> modelRows = new IntegerUnion(); for (long value : selectedGeometries) { modelRows.add(getRowSet().getRowId(value)); } return modelRows; }
@Override public void initialize(ProgressMonitor progress, TableEditableElement source) throws SQLException{ progress.setTaskName(I18N.tr("Run filter by sql request")); // If the table hold a PK then do the find task on the server side try(Connection connection = source.getDataManager().getDataSource().getConnection(); Statement st = connection.createStatement()) { PropertyChangeListener cancelListener = EventHandler.create(PropertyChangeListener.class, st, "cancel"); progress.addPropertyChangeListener(ProgressMonitor.PROP_CANCEL, cancelListener); try{ String tablePk = source.getRowSet().getPkName(); if(!tablePk.isEmpty()) { final ReadRowSet rowSet = source.getRowSet(); StringBuilder request = new StringBuilder(String.format("SELECT %s FROM %s WHERE %s", TableLocation.quoteIdentifier(tablePk), source.getTableReference(), whereText)); LOGGER.info(I18N.tr("Find field value with the following request:\n{0}",request.toString())); try(ResultSet rs = st.executeQuery(request.toString())) { while(rs.next()) { filteredRows.add(rowSet.getRowId(rs.getLong(1)) - 1); } } } } finally { progress.removePropertyChangeListener(cancelListener); } } catch (EditableElementException ex) { throw new SQLException(ex); } } }
@Override public void open(ProgressMonitor progressMonitor) throws UnsupportedOperationException, EditableElementException { if(rowSet == null) { try(Connection connection = dataManager.getDataSource().getConnection()) { boolean isH2 = JDBCUtilities.isH2DataBase(connection.getMetaData()); String pkName = MetaData.getPkName(connection, tableReference, true); rowSet = dataManager.createReversibleRowSet(); rowSet.initialize(TableLocation.parse(tableReference, isH2).toString(isH2), pkName, progressMonitor); } catch (SQLException | IllegalArgumentException ex) { throw new EditableElementException(ex); } setOpen(true); } }
ResultSetMetaData meta = rowSet.getMetaData(); for(int columnId = 1; columnId < meta.getColumnCount(); columnId++) { if(meta.isReadOnly(columnId)) {
@Override public void close(ProgressMonitor progressMonitor) throws UnsupportedOperationException, EditableElementException { if(rowSet != null) { try { rowSet.close(); rowSet = null; setOpen(false); } catch (SQLException ex) { throw new EditableElementException(ex); } } }
try(Connection connection = dataSource.getConnection()) { List<String> geomFields = SFSUtilities.getGeometryFields(connection, TableLocation.parse(tableEditableElement.getTableReference())); ResultSetMetaData meta = tableEditableElement.getRowSet().getMetaData(); for(String geomField : geomFields) { int gIndex = JDBCUtilities.getFieldIndex(meta, geomField);