public FontFallbackMarker() { editorFont = Core.getMainWindow().getApplicationFont(); CoreEvents.registerFontChangedEventListener( new IFontChangedEventListener() { @Override public void onFontChanged(Font newFont) { editorFont = Core.getMainWindow().getApplicationFont(); Core.getEditor().remarkOneMarker(FontFallbackMarker.class.getName()); } }); }
/** @deprecated */ public static void loadPlugins() { CoreEvents.registerApplicationEventListener( new IApplicationEventListener() { @Override public void onApplicationStartup() { window = new ScriptingWindow(); } @Override public void onApplicationShutdown() {} }); }
/** * 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<Object, Void>() { protected Object 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 { boolean needToSaveProperties = false; if (props.hasRepositories()) { // 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, new File(projectRootFolder, OConsts.FILE_PROJECT).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; Core.executeExclusively(true, () -> ProjectFactory.loadProject(propsP, true)); if (needToSaveProperties) { Core.getProject().saveProjectProperties(); } } 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; } RecentProjects.add(projectRootFolder.getAbsolutePath()); 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(); }