public void cancel() { synchronized (this) { if (pm != null) { if(!pm.isCancelled()) { LOGGER.debug("Cancel drawing !"); } pm.setCancelled(true); } } } }
@Override public ProgressVisitor subProcess(int i) { return new H2GISProgressMonitor(progressMonitor.startTask(i)); }
@Override public void endOfProgress() { progressMonitor.endTask(); }
ProgressMonitor insertProgress = pm.startTask(selectedRows.size()); insertProgress.addPropertyChangeListener(ProgressMonitor.PROP_CANCEL, listener); try { insertSt.addBatch(); batchSize++; insertProgress.endTask(); if(batchSize >= insertBatchSize) { batchSize = 0; insertSt.executeBatch(); if(insertProgress.isCancelled()) { break; insertProgress.removePropertyChangeListener(listener);
int i = 0; int n = 0; pm.progressTo(50); pm.startTask(CREATE_CLASSIF, 100); for(String s : set){ newRL.put(s, lp); if(i*m>n){ n++; pm.progressTo(50*i/size); if(pm.isCancelled()){ pm.endTask(); return null; pm.progressTo(100); pm.endTask(); pm.progressTo(100); postProcess(newRL); return newRL;
@Override public void run() { // Update the table values List<Integer> ranges = nextViewSelection.getValueRanges(); Iterator<Integer> intervals = ranges.iterator(); try { table.getSelectionModel().setValueIsAdjusting(true); table.clearSelection(); ProgressMonitor swingPm = pm.startTask("Apply filter", ranges.size()); while (intervals.hasNext()) { int begin = intervals.next(); int end = intervals.next(); table.addRowSelectionInterval(begin, end); swingPm.endTask(); if (swingPm.isCancelled()) { return; } } } finally { table.getSelectionModel().setValueIsAdjusting(false); } if(!nextViewSelection.isEmpty()) { scrollToRow(nextViewSelection.first(), table); } } });
if (pm.isCancelled()) { break; } else { pm.progressTo(100 * r / rowsToCheck);
@Override public void run(ProgressMonitor pm) { try(Connection connection = dataSource.getConnection(); Statement st = connection.createStatement()) { pm.addPropertyChangeListener(ProgressMonitor.PROP_CANCEL, EventHandler.create(PropertyChangeListener.class, st, "cancel")); connection.setAutoCommit(false); ProgressMonitor dropPm = pm.startTask(tableToDelete.length); for (String resource : tableToDelete) { TableLocation tableLocation = TableLocation.parse(resource, JDBCUtilities.isH2DataBase(connection.getMetaData())); try { LOGGER.info(String.format("drop table %s", tableLocation)); st.execute(String.format("drop table %s", tableLocation)); } catch (SQLException ex) { LOGGER.error(I18N.tr("Cannot remove the source {0}", resource), ex); connection.rollback(); connection.setAutoCommit(true); return; } dropPm.endTask(); } connection.commit(); SwingUtilities.invokeAndWait(this); } catch (SQLException ex) { LOGGER.error(I18N.trc("Tables are database tables, drop means delete tables", "Cannot drop the tables"), ex); } catch (InvocationTargetException | InterruptedException ex) { LOGGER.trace(ex.getLocalizedMessage(), ex); } }
public static void createTableFromRowPkSelection(DataSource dataSource, String tableName, Set<Long> selectedRows, String newName, ProgressMonitor pm) throws SQLException { // Populate the new source try(Connection connection = dataSource.getConnection(); Statement st = connection.createStatement()) { DatabaseMetaData meta = connection.getMetaData(); // Find an unique name to register if (newName == null) { newName = MetaData.getNewUniqueName(tableName,meta,"selection"); } // Create row id table String tempTableName = CreateTable.createIndexTempTable(connection, pm, selectedRows,"ROWID", INSERT_BATCH_SIZE); PropertyChangeListener listener = EventHandler.create(PropertyChangeListener.class, st, "cancel"); pm.addPropertyChangeListener(ProgressMonitor.PROP_CANCEL, listener); // Copy content using pk String primaryKeyName = MetaData.getPkName(connection, tableName, true); StringBuilder pkEquality = new StringBuilder("a.%s = "); if (!primaryKeyName.equals(MetaData.POSTGRE_ROW_IDENTIFIER)) { pkEquality.append("b.ROWID"); } else { pkEquality.append(MetaData.castLongToTid("b.ROWID")); } st.execute(String.format("CREATE TABLE %s AS SELECT a.* FROM %s a,%s b " + "WHERE "+pkEquality, TableLocation.parse(newName), TableLocation.parse(tableName),tempTableName, primaryKeyName)); pm.removePropertyChangeListener(listener); } } }
private void initialize(ProgressMonitor parentProgress) { ProgressMonitor progress = parentProgress.startTask(I18N.tr("Loading the main window"), 100); makeMainFrame(); progress.endTask(); progress.setTaskName(I18N.tr("Loading docking system and frames")); toolBarTracker = new MenuItemServiceTracker<MainWindow, ToolBarAction>(pluginFramework.getHostBundleContext(), ToolBarAction.class, dockManagerImpl, mainFrame); toolBarTracker.open(); progress.endTask(); progress.endTask(); progress.endTask(); progress.endTask(); progress.endTask(); progress.setTaskName(I18N.tr("Restore the former layout..")); progress.endTask(); addCoreMenu();
ProgressMonitor progressInfo = parentProgress.startTask(I18N.tr("Loading Workspace.."),100); MainContext.initConsoleLogger(debugMode); progressInfo.progressTo(10); this.viewWorkspace = new ViewWorkspace(this.mainContext.getCoreWorkspace()); Services.registerService(ViewWorkspace.class, I18N.tr("Contains view folders path"), viewWorkspace); progressInfo.setTaskName(I18N.tr("Register GUI Sql functions..")); addSQLFunctions(); progressInfo.progressTo(11); progressInfo.setTaskName(I18N.tr("Load the plugin framework..")); startPluginHost(); progressInfo.progressTo(18); progressInfo.setTaskName(I18N.tr("Connecting to the database..")); progressInfo.progressTo(20);
pm = new NullProgressMonitor(); } else { pm = progressMonitor.startTask(numLayers); if (pm.isCancelled()) { break; } else {
@Override public void run(ProgressMonitor progress) { long t1 = System.currentTimeMillis(); ProgressMonitor pm = progress.startTask(I18N.tr("Execute SQL Request"), panel.getScriptPanel().getLineCount()); try(Connection connection = ds.getConnection()) { try(Statement st = connection.createStatement()) { st.setQueryTimeout(timeOut); // If the user clicks on cancel, cancel the execution pm.addPropertyChangeListener(ProgressMonitor.PROP_CANCEL , EventHandler.create(PropertyChangeListener.class, st, "cancel")); if(splitterFactory != null) { parseAndExecuteScript(pm, st); } else { st.execute(panel.getScriptPanel().getText().trim()); } } } catch (SQLException ex) { LOGGER.error(ex.getLocalizedMessage(), ex); } long t2 = System.currentTimeMillis(); double lastExecTime = ((t2 - t1) / 1000.0); String message = I18N.tr("OVERALL EXECUTION TIME: {0} seconds",lastExecTime); LOGGER.info(message); showPanelMessage(message); } }
@Override public boolean isCanceled() { return progressMonitor.isCancelled(); }
@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 addPropertyChangeListener(String property, PropertyChangeListener listener) { progressMonitor.addPropertyChangeListener(property.equals(PROPERTY_CANCELED) ? ProgressMonitor.PROP_CANCEL: property, listener); }
@Override public void setStep(int i) { progressMonitor.progressTo(i); }
@Override public void removePropertyChangeListener(PropertyChangeListener listener) { progressMonitor.removePropertyChangeListener(listener); } }
@Override public void cancel() { progressMonitor.setCancelled(true); }
private void cachePrimaryKey(ProgressMonitor pm) throws SQLException { ProgressMonitor cachePm = pm.startTask(getRowCount()); if(rowPk == null) { rowPk = new DualHashBidiMap<>(); } else { rowPk.clear(); } try(Connection connection = dataSource.getConnection(); Statement st = connection.createStatement()) { PropertyChangeListener listener = EventHandler.create(PropertyChangeListener.class, st, "cancel"); pm.addPropertyChangeListener(ProgressMonitor.PROP_CANCEL, listener); st.setFetchSize(fetchSize); connection.setAutoCommit(false); // Use postgre cursor try(ResultSet rs = st.executeQuery("SELECT "+pk_name+" FROM "+location+" "+ orderBy)) { // Cache the primary key values int pkRowId = 0; while (rs.next()) { pkRowId++; rowPk.put(pkRowId, rs.getLong(1)); cachePm.endTask(); } } finally { pm.removePropertyChangeListener(listener); } } catch (SQLException ex) { throw new IllegalArgumentException(ex); } }