public String saveAsFile(boolean accessingAsFile) throws IOException { File file = new SikuliIDEFileChooser(SikuliIDE.getInstance(), accessingAsFile).save(); if (file == null) { return null; } String bundlePath = FileManager.slashify(file.getAbsolutePath(), false); if (!file.getAbsolutePath().endsWith(".sikuli")) { bundlePath += ".sikuli"; } if (FileManager.exists(bundlePath)) { int res = JOptionPane.showConfirmDialog( null, SikuliIDEI18N._I("msgFileExists", bundlePath), SikuliIDEI18N._I("dlgFileExists"), JOptionPane.YES_NO_OPTION); if (res != JOptionPane.YES_OPTION) { return null; } } else { FileManager.mkdir(bundlePath); } try { saveAsBundle(bundlePath, (SikuliIDE.getInstance().getCurrentFileTabTitle())); if (Settings.isMac()) { if (!Settings.handlesMacBundles) { makeBundle(bundlePath, accessingAsFile); } } } catch (IOException iOException) { } return getCurrentShortFilename(); }
void takeScreenshot() { SikuliIDE ide = SikuliIDE.getInstance(); ide.setVisible(false); try { Thread.sleep(500); } catch (Exception e) { } _simg = (new ScreenUnion()).getScreen().capture(); ide.setVisible(true); }
@Override public void actionPerformed(ActionEvent e) { actionPerformedUpdates(_parent); _imgBtn.getWindow().close(); _parent.dispose(); SikuliIDE.getInstance().getCurrentCodePane().setDirty(setDirty(false)); }
public boolean close() throws IOException { if (isDirty()) { Object[] options = { SikuliIDEI18N._I("yes"), SikuliIDEI18N._I("no"), SikuliIDEI18N._I("cancel") }; int ans = JOptionPane.showOptionDialog( this, SikuliIDEI18N._I("msgAskSaveChanges", getCurrentShortFilename()), SikuliIDEI18N._I("dlgAskCloseTab"), JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE, null, options, options[0]); if (ans == JOptionPane.CANCEL_OPTION || ans == JOptionPane.CLOSED_OPTION) { return false; } else if (ans == JOptionPane.YES_OPTION) { if (saveFile() == null) { return false; } } else { SikuliIDE.getInstance().getTabPane().resetLastClosed(); } if (_srcBundleTemp) { FileManager.deleteTempDir(_srcBundlePath); } setDirty(false); } if (_srcBundlePath != null) { ImagePath.remove(_srcBundlePath); } return true; }
// <editor-fold defaultstate="collapsed" desc="file handling"> public String loadFile(boolean accessingAsFile) throws IOException { File file = new SikuliIDEFileChooser(SikuliIDE.getInstance(), accessingAsFile).load(); if (file == null) { return null; } String fname = FileManager.slashify(file.getAbsolutePath(), false); SikuliIDE ide = SikuliIDE.getInstance(); int i = ide.isAlreadyOpen(fname); if (i > -1) { Debug.log(2, "Already open in IDE: " + fname); return null; } loadFile(fname); if (_editingFile == null) { return null; } return fname; }
public void setDirty(boolean flag) { if (_dirty == flag) { return; } _dirty = flag; // <editor-fold defaultstate="collapsed" desc="RaiMan no global dirty"> if (flag) { // RaiManMod getRootPane().putClientProperty("Window.documentModified", true); } else { // SikuliIDE.getInstance().checkDirtyPanes(); } // </editor-fold> SikuliIDE.getInstance().setCurrentFileTabTitleDirty(_dirty); }
public String exportAsZip() throws IOException, FileNotFoundException { File file = new SikuliIDEFileChooser(SikuliIDE.getInstance()).export(); if (file == null) { return null; } String zipPath = file.getAbsolutePath(); String srcName = file.getName(); if (!file.getAbsolutePath().endsWith(".skl")) { zipPath += ".skl"; } else { srcName = srcName.substring(0, srcName.lastIndexOf('.')); } writeFile(getSrcBundle() + srcName + ".py"); FileManager.zip(getSrcBundle(), zipPath); Debug.log(2, "export to executable file: " + zipPath); return zipPath; }
public void refreshControls() { SikuliIDE.getInstance().updateUndoRedoStates(); }
public void initBeforeLoad(String scriptType, boolean reInit) { String scrType = null; boolean paneIsEmpty = false; if (scriptType == null) { scriptType = Settings.EDEFAULT; paneIsEmpty = true; } if (Settings.EPYTHON.equals(scriptType)) { scrType = Settings.CPYTHON; _indentationLogic = SikuliIDE.getIDESupport(scriptType).getIndentationLogic(); _indentationLogic.setTabWidth(pref.getTabWidth()); } else if (Settings.ERUBY.equals(scriptType)) { scrType = Settings.CRUBY; _indentationLogic = null; } if (scrType != null) { sikuliContentType = scrType; editorKit = new SikuliEditorKit(); editorViewFactory = (EditorViewFactory) editorKit.getViewFactory(); setEditorKit(editorKit); setContentType(scrType); if (_indentationLogic != null) { pref.addPreferenceChangeListener( new PreferenceChangeListener() { @Override public void preferenceChange(PreferenceChangeEvent event) { if (event.getKey().equals("TAB_WIDTH")) { _indentationLogic.setTabWidth(Integer.parseInt(event.getNewValue())); } } }); } } initKeyMap(); if (transferHandler == null) { transferHandler = new MyTransferHandler(); } setTransferHandler(transferHandler); _highlighter = new EditorCurrentLineHighlighter(this); addCaretListener(_highlighter); setFont(new Font(pref.getFontName(), Font.PLAIN, pref.getFontSize())); setMargin(new Insets(3, 3, 3, 3)); setBackground(Color.WHITE); if (!Settings.isMac()) { setSelectionColor(new Color(170, 200, 255)); } updateDocumentListeners(); addKeyListener(this); addCaretListener(this); popMenuImage = new SikuliIDEPopUpMenu("POP_IMAGE", this); if (!popMenuImage.isValidMenu()) { popMenuImage = null; } if (paneIsEmpty || reInit) { // this.setText(String.format(Settings.TypeCommentDefault, getSikuliContentType())); this.setText(""); } SikuliIDE.getStatusbar().setCurrentContentType(getSikuliContentType()); Debug.log(3, "InitTab: (%s)", getSikuliContentType()); if (!Settings.hasTypeRunner(getSikuliContentType())) { SikuliX.popup( "No installed runner supports (" + getSikuliContentType() + ")\n" + "Trying to run the script will crash IDE!", "... serious problem detected!"); } }