Search in sources :

Example 46 with Cursor

use of java.awt.Cursor in project omegat by omegat-org.

the class ProjectUICommands method projectOpen.

/**
 * Open project. Does nothing if a project is already open and closeCurrent is false.
 *
 * @param projectDirectory
 *            project directory or null if user must choose it
 * @param closeCurrent
 *            whether or not to close the current project first, if any
 */
public static void projectOpen(final File projectDirectory, boolean closeCurrent) {
    UIThreadsUtil.mustBeSwingThread();
    if (Core.getProject().isProjectLoaded()) {
        if (closeCurrent) {
            // Register to try again after closing the current project.
            CoreEvents.registerProjectChangeListener(new IProjectEventListener() {

                public void onProjectChanged(PROJECT_CHANGE_TYPE eventType) {
                    if (eventType == PROJECT_CHANGE_TYPE.CLOSE) {
                        projectOpen(projectDirectory, false);
                        CoreEvents.unregisterProjectChangeListener(this);
                    }
                }
            });
            projectClose();
        }
        return;
    }
    final File projectRootFolder;
    if (projectDirectory == null) {
        // select existing project file - open it
        OmegaTFileChooser pfc = new OpenProjectFileChooser();
        if (OmegaTFileChooser.APPROVE_OPTION != pfc.showOpenDialog(Core.getMainWindow().getApplicationFrame())) {
            return;
        }
        projectRootFolder = pfc.getSelectedFile();
    } else {
        projectRootFolder = projectDirectory;
    }
    new SwingWorker<Void, Void>() {

        protected Void doInBackground() throws Exception {
            IMainWindow mainWindow = Core.getMainWindow();
            Cursor hourglassCursor = Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR);
            Cursor oldCursor = mainWindow.getCursor();
            mainWindow.setCursor(hourglassCursor);
            try {
                // convert old projects if need
                ConvertProject.convert(projectRootFolder);
            } catch (Exception ex) {
                Log.logErrorRB(ex, "PP_ERROR_UNABLE_TO_CONVERT_PROJECT");
                Core.getMainWindow().displayErrorRB(ex, "PP_ERROR_UNABLE_TO_CONVERT_PROJECT");
                mainWindow.setCursor(oldCursor);
                return null;
            }
            // check if project okay
            ProjectProperties props;
            try {
                props = ProjectFileStorage.loadProjectProperties(projectRootFolder.getAbsoluteFile());
            } catch (Exception ex) {
                Log.logErrorRB(ex, "PP_ERROR_UNABLE_TO_READ_PROJECT_FILE");
                Core.getMainWindow().displayErrorRB(ex, "PP_ERROR_UNABLE_TO_READ_PROJECT_FILE");
                mainWindow.setCursor(oldCursor);
                return null;
            }
            try {
                File projectFile = new File(projectRootFolder, OConsts.FILE_PROJECT);
                boolean needToSaveProperties = false;
                File restoreOnFail = null;
                if (props.hasRepositories()) {
                    // This is a remote project
                    if (!Core.getParams().containsKey(CLIParameters.NO_TEAM)) {
                        // Save repository mapping
                        List<RepositoryDefinition> repos = props.getRepositories();
                        // Update project.properties
                        mainWindow.showStatusMessageRB("TEAM_OPEN");
                        try {
                            RemoteRepositoryProvider remoteRepositoryProvider = new RemoteRepositoryProvider(props.getProjectRootDir(), props.getRepositories(), props);
                            remoteRepositoryProvider.switchToVersion(OConsts.FILE_PROJECT, null);
                            restoreOnFail = FileUtil.backupFile(projectFile);
                            // Overwrite omegat.project
                            remoteRepositoryProvider.copyFilesFromReposToProject(OConsts.FILE_PROJECT);
                            // Reload project properties
                            props = ProjectFileStorage.loadProjectProperties(projectRootFolder.getAbsoluteFile());
                            /*
                                 * Repositories with a project by default have no mapping. When they are downloaded,
                                 * the mapping is added locally.
                                 * Every time we reopen the project, and we copy omegat.project from the remote project,
                                 * we lose the locally defined mapping(s). We need to restore them and save the updated
                                 * omegat.properties to disk.
                                 * If the repository already contains the omegat.project file with mappings, then we
                                 * use those. Local changes are overwritten like any other setting.
                                 */
                            if (props.getRepositories() == null) {
                                // We have a project without mappings
                                // so we restore the mapping we just lost
                                props.setRepositories(repos);
                                needToSaveProperties = true;
                            }
                        } catch (IRemoteRepository2.NetworkException e) {
                        // Do nothing. Network errors are handled in RealProject.
                        } catch (Exception e) {
                            Log.logErrorRB(e, "TF_PROJECT_PROPERTIES_ERROR");
                            throw e;
                        }
                    }
                    // team project - non-exist directories could be created from repo
                    props.autocreateDirectories();
                } else {
                    // not a team project - ask for non-exist directories
                    while (!props.isProjectValid()) {
                        needToSaveProperties = true;
                        // something wrong with the project - display open dialog
                        // to fix it
                        ProjectPropertiesDialog prj = new ProjectPropertiesDialog(Core.getMainWindow().getApplicationFrame(), props, projectFile.getAbsolutePath(), ProjectPropertiesDialog.Mode.RESOLVE_DIRS);
                        prj.setVisible(true);
                        props = prj.getResult();
                        prj.dispose();
                        if (props == null) {
                            // user clicks on 'Cancel'
                            mainWindow.setCursor(oldCursor);
                            return null;
                        }
                    }
                }
                final ProjectProperties propsP = props;
                final File restoreOnFailFinal = restoreOnFail;
                Core.executeExclusively(true, () -> {
                    boolean succeeded = ProjectFactory.loadProject(propsP, true);
                    if (restoreOnFailFinal != null) {
                        if (succeeded) {
                            Files.deleteIfExists(restoreOnFailFinal.toPath());
                        } else {
                            Files.move(restoreOnFailFinal.toPath(), projectFile.toPath(), StandardCopyOption.REPLACE_EXISTING);
                        }
                    }
                });
                if (needToSaveProperties) {
                    Core.getProject().saveProjectProperties();
                }
                RecentProjects.add(projectRootFolder.getAbsolutePath());
            } catch (Exception ex) {
                Log.logErrorRB(ex, "PP_ERROR_UNABLE_TO_READ_PROJECT_FILE");
                Core.getMainWindow().displayErrorRB(ex, "PP_ERROR_UNABLE_TO_READ_PROJECT_FILE");
            }
            mainWindow.setCursor(oldCursor);
            return null;
        }

        protected void done() {
            try {
                get();
                SwingUtilities.invokeLater(Core.getEditor()::requestFocus);
            } catch (Exception ex) {
                Log.logErrorRB(ex, "PP_ERROR_UNABLE_TO_READ_PROJECT_FILE");
                Core.getMainWindow().displayErrorRB(ex, "PP_ERROR_UNABLE_TO_READ_PROJECT_FILE");
            }
        }
    }.execute();
}
Also used : RemoteRepositoryProvider(org.omegat.core.team2.RemoteRepositoryProvider) OmegaTFileChooser(org.omegat.util.gui.OmegaTFileChooser) ProjectProperties(org.omegat.core.data.ProjectProperties) Cursor(java.awt.Cursor) KnownException(org.omegat.core.KnownException) IOException(java.io.IOException) ExecutionException(java.util.concurrent.ExecutionException) OpenProjectFileChooser(org.omegat.util.gui.OpenProjectFileChooser) List(java.util.List) ArrayList(java.util.ArrayList) ProjectPropertiesDialog(org.omegat.gui.dialogs.ProjectPropertiesDialog) IProjectEventListener(org.omegat.core.events.IProjectEventListener) File(java.io.File)

Example 47 with Cursor

use of java.awt.Cursor in project omegat by omegat-org.

the class EditorController method gotoEntry.

public void gotoEntry(final int entryNum, final CaretPosition pos) {
    UIThreadsUtil.mustBeSwingThread();
    if (!Core.getProject().isProjectLoaded()) {
        return;
    }
    if (m_docSegList == null) {
        // document didn't loaded yet
        return;
    }
    Cursor hourglassCursor = Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR);
    Cursor oldCursor = editor.getCursor();
    editor.setCursor(hourglassCursor);
    commitAndDeactivate();
    if (entryNum == 0) {
        // it was empty project, need to display first entry
        displayedFileIndex = 0;
        displayedEntryIndex = 0;
        loadDocument();
    } else {
        IProject dataEngine = Core.getProject();
        for (int i = 0; i < dataEngine.getProjectFiles().size(); i++) {
            IProject.FileInfo fi = dataEngine.getProjectFiles().get(i);
            SourceTextEntry firstEntry = fi.entries.get(0);
            SourceTextEntry lastEntry = fi.entries.get(fi.entries.size() - 1);
            if (firstEntry.entryNum() <= entryNum && lastEntry.entryNum() >= entryNum) {
                // this file
                if (i != displayedFileIndex) {
                    // it's other file than displayed
                    displayedFileIndex = i;
                    loadDocument();
                }
                // find correct displayedEntryIndex
                for (int j = 0; j < m_docSegList.length; j++) {
                    if (m_docSegList[j].segmentNumberInProject >= entryNum) {
                        // 
                        displayedEntryIndex = j;
                        break;
                    }
                }
                break;
            }
        }
    }
    activateEntry(pos);
    editor.setCursor(oldCursor);
    updateTitleCurrentFile();
}
Also used : SourceTextEntry(org.omegat.core.data.SourceTextEntry) FileInfo(org.omegat.core.data.IProject.FileInfo) Cursor(java.awt.Cursor) IProject(org.omegat.core.data.IProject) Point(java.awt.Point)

Example 48 with Cursor

use of java.awt.Cursor in project archi by archimatetool.

the class SimpleSwingExample method performLayout.

protected void performLayout() {
    stop();
    final Cursor cursor = mainFrame.getCursor();
    updateGUICount = 0;
    placeRandomly();
    final boolean continuous = btnContinuous.isSelected();
    final boolean asynchronous = btnAsynchronous.isSelected();
    ProgressListener progressListener = new ProgressListener() {

        @Override
        public void progressUpdated(final ProgressEvent e) {
            // if (asynchronous) {
            updateGUI();
            // }
            // $NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
            lblProgress.setText("Progress: " + e.getStepsCompleted() + " of " + e.getTotalNumberOfSteps() + " completed ...");
            lblProgress.paintImmediately(0, 0, lblProgress.getWidth(), lblProgress.getHeight());
        }

        @Override
        public void progressStarted(ProgressEvent e) {
            if (!asynchronous) {
                mainFrame.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
            }
            // $NON-NLS-1$
            lblProgress.setText("Layout started ...");
            lblProgress.paintImmediately(0, 0, lblProgress.getWidth(), lblProgress.getHeight());
        }

        @Override
        public void progressEnded(ProgressEvent e) {
            // $NON-NLS-1$
            lblProgress.setText("Layout completed ...");
            lblProgress.paintImmediately(0, 0, lblProgress.getWidth(), lblProgress.getHeight());
            currentLayoutAlgorithm.removeProgressListener(this);
            if (!asynchronous) {
                mainFrame.setCursor(cursor);
            }
        }
    };
    currentLayoutAlgorithm.addProgressListener(progressListener);
    try {
        final LayoutEntity[] layoutEntities = new LayoutEntity[entities.size()];
        entities.toArray(layoutEntities);
        final LayoutRelationship[] layoutRelationships = new LayoutRelationship[relationships.size()];
        relationships.toArray(layoutRelationships);
        SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {
                try {
                    currentLayoutAlgorithm.applyLayout(layoutEntities, layoutRelationships, 0, 0, mainPanel.getWidth(), mainPanel.getHeight(), asynchronous, continuous);
                } catch (InvalidLayoutConfiguration e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        });
        // if (!animate) {
        updateGUI();
        // }
        // reset
        currentNodeShape = DEFAULT_NODE_SHAPE;
    } catch (StackOverflowError e) {
        e.printStackTrace();
    } finally {
    }
}
Also used : ProgressListener(org.eclipse.zest.layouts.progress.ProgressListener) LayoutEntity(org.eclipse.zest.layouts.LayoutEntity) Cursor(java.awt.Cursor) ProgressEvent(org.eclipse.zest.layouts.progress.ProgressEvent) LayoutRelationship(org.eclipse.zest.layouts.LayoutRelationship) InvalidLayoutConfiguration(org.eclipse.zest.layouts.InvalidLayoutConfiguration)

Example 49 with Cursor

use of java.awt.Cursor in project mafscaling by vimsh.

the class VECalc method loadLogFile.

protected void loadLogFile() {
    boolean displayDialog = true;
    fileChooser.setMultiSelectionEnabled(true);
    if (JFileChooser.APPROVE_OPTION != fileChooser.showOpenDialog(this))
        return;
    File[] files = fileChooser.getSelectedFiles();
    for (File file : files) {
        BufferedReader br = null;
        ArrayDeque<String[]> buffer = new ArrayDeque<String[]>();
        try {
            br = new BufferedReader(new InputStreamReader(new FileInputStream(file.getAbsoluteFile()), Config.getEncoding()));
            String line = null;
            String[] elements = null;
            while ((line = br.readLine()) != null && (elements = line.split(Utils.fileFieldSplitter, -1)) != null && elements.length < 2) continue;
            getColumnsFilters(elements);
            boolean resetColumns = false;
            if (logThrottleAngleColIdx >= 0 || logFfbColIdx >= 0 || logSdColIdx >= 0 || (logWbAfrColIdx >= 0 && isOl) || (logStockAfrColIdx >= 0 && !isOl) || (logAfLearningColIdx >= 0 && !isOl) || (logAfCorrectionColIdx >= 0 && !isOl) || logRpmColIdx >= 0 || logMafColIdx >= 0 || logIatColIdx >= 0 || logMpColIdx >= 0) {
                if (displayDialog) {
                    int rc = JOptionPane.showOptionDialog(null, "Would you like to reset column names or filter values?", "Columns/Filters Reset", JOptionPane.DEFAULT_OPTION, JOptionPane.QUESTION_MESSAGE, null, optionButtons, optionButtons[0]);
                    if (rc == 0)
                        resetColumns = true;
                    else if (rc == 2)
                        displayDialog = false;
                }
            }
            if (resetColumns || logThrottleAngleColIdx < 0 || logFfbColIdx < 0 || logSdColIdx < 0 || (logWbAfrColIdx < 0 && isOl) || (logStockAfrColIdx < 0 && !isOl) || (logAfLearningColIdx < 0 && !isOl) || (logAfCorrectionColIdx < 0 && !isOl) || logRpmColIdx < 0 || logMafColIdx < 0 || logIatColIdx < 0 || logMpColIdx < 0) {
                ColumnsFiltersSelection selectionWindow = new VEColumnsFiltersSelection();
                if (!selectionWindow.getUserSettings(elements) || !getColumnsFilters(elements))
                    return;
            }
            if (logClOlStatusColIdx == -1)
                clValue = -1;
            String[] flds;
            String[] afrflds;
            boolean removed = false;
            int i = 2;
            int clol = -1;
            int row = getLogTableEmptyRow();
            double thrtlMaxChange2 = thrtlMaxChange + thrtlMaxChange / 2.0;
            double throttle = 0;
            double pThrottle = 0;
            double ppThrottle = 0;
            double afr = 0;
            double rpm;
            double ffb;
            double iat;
            clearRunTables();
            setCursor(new Cursor(Cursor.WAIT_CURSOR));
            for (int k = 0; k <= afrRowOffset && line != null; ++k) {
                line = br.readLine();
                if (line != null)
                    buffer.addFirst(line.split(Utils.fileFieldSplitter, -1));
            }
            try {
                while (line != null && buffer.size() > afrRowOffset) {
                    afrflds = buffer.getFirst();
                    flds = buffer.removeLast();
                    line = br.readLine();
                    if (line != null)
                        buffer.addFirst(line.split(Utils.fileFieldSplitter, -1));
                    ppThrottle = pThrottle;
                    pThrottle = throttle;
                    throttle = Double.valueOf(flds[logThrottleAngleColIdx]);
                    try {
                        if (row > 0 && Math.abs(pThrottle - throttle) > thrtlMaxChange) {
                            if (!removed)
                                Utils.removeRow(row--, logDataTable);
                            removed = true;
                        } else if (row <= 0 || Math.abs(ppThrottle - throttle) <= thrtlMaxChange2) {
                            // Filters
                            afr = (isOl ? Double.valueOf(afrflds[logWbAfrColIdx]) : Double.valueOf(afrflds[logStockAfrColIdx]));
                            rpm = Double.valueOf(flds[logRpmColIdx]);
                            ffb = Double.valueOf(flds[logFfbColIdx]);
                            iat = Double.valueOf(flds[logIatColIdx]);
                            if (clValue != -1) {
                                if (flds[logClOlStatusColIdx] == "on")
                                    clol = 0;
                                else if (flds[logClOlStatusColIdx] == "off")
                                    clol = 1;
                                else
                                    clol = (int) Utils.parseValue(flds[logClOlStatusColIdx]);
                            }
                            boolean flag = isOl ? ((afr <= afrMax || throttle >= thrtlMin) && afr <= afrMax) : (afrMin <= afr);
                            if (flag && clol == clValue && rpmMin <= rpm && ffbMin <= ffb && ffb <= ffbMax && iat <= iatMax) {
                                removed = false;
                                if (!isOl)
                                    trims.add(Double.valueOf(flds[logAfLearningColIdx]) + Double.valueOf(flds[logAfCorrectionColIdx]));
                                Utils.ensureRowCount(row + 1, logDataTable);
                                logDataTable.setValueAt(rpm, row, 0);
                                logDataTable.setValueAt(iat, row, 1);
                                logDataTable.setValueAt(Double.valueOf(flds[logMpColIdx]), row, 2);
                                logDataTable.setValueAt(ffb, row, 3);
                                logDataTable.setValueAt(afr, row, 4);
                                logDataTable.setValueAt(Double.valueOf(flds[logMafColIdx]), row, 5);
                                logDataTable.setValueAt(Double.valueOf(flds[logSdColIdx]), row, 6);
                                row += 1;
                            } else
                                removed = true;
                        } else
                            removed = true;
                    } catch (NumberFormatException e) {
                        logger.error(e);
                        JOptionPane.showMessageDialog(null, "Error parsing number at " + file.getName() + " line " + i + ": " + e, "Error processing file", JOptionPane.ERROR_MESSAGE);
                        return;
                    }
                    i += 1;
                }
            } finally {
                setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
            }
        } catch (Exception e) {
            logger.error(e);
            JOptionPane.showMessageDialog(null, e, "Error opening file", JOptionPane.ERROR_MESSAGE);
        } finally {
            if (br != null) {
                try {
                    br.close();
                } catch (IOException e) {
                    logger.error(e);
                }
            }
        }
    }
}
Also used : InputStreamReader(java.io.InputStreamReader) IOException(java.io.IOException) Cursor(java.awt.Cursor) ArrayDeque(java.util.ArrayDeque) FileInputStream(java.io.FileInputStream) IOException(java.io.IOException) BufferedReader(java.io.BufferedReader) File(java.io.File)

Example 50 with Cursor

use of java.awt.Cursor in project mafscaling by vimsh.

the class ACompCalc method clearLogDataTables.

protected void clearLogDataTables() {
    setCursor(new Cursor(Cursor.WAIT_CURSOR));
    try {
        while (LogDataRowCount < logDataTable.getRowCount()) Utils.removeRow(LogDataRowCount, logDataTable);
        Utils.clearTable(logDataTable);
        clear2dChartData();
        plot3d.removeAllPlots();
    } finally {
        setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
    }
}
Also used : Cursor(java.awt.Cursor)

Aggregations

Cursor (java.awt.Cursor)136 IOException (java.io.IOException)34 File (java.io.File)27 Point (java.awt.Point)19 MouseEvent (java.awt.event.MouseEvent)16 MouseAdapter (java.awt.event.MouseAdapter)13 Component (java.awt.Component)12 BufferedReader (java.io.BufferedReader)10 FileInputStream (java.io.FileInputStream)10 InputStreamReader (java.io.InputStreamReader)10 JLabel (javax.swing.JLabel)10 ArrayList (java.util.ArrayList)8 URISyntaxException (java.net.URISyntaxException)7 Color (java.awt.Color)6 Insets (java.awt.Insets)6 WalletCallException (com.vaklinov.zcashui.ZCashClientCaller.WalletCallException)5 Dimension (java.awt.Dimension)5 GridBagConstraints (java.awt.GridBagConstraints)5 Rectangle (java.awt.Rectangle)5 JPanel (javax.swing.JPanel)5