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();
}
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();
}
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 {
}
}
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);
}
}
}
}
}
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));
}
}
Aggregations