@Override public void invokeMirrorCallback(JavaScriptObject obj) { if (!CodeMirrorEditorWrapper.getFileOpened().isEmpty()) { textAreaCodeShow.setHTML(CodeMirrorEditorWrapper.getText()); writeEditorContentToFile(); } }
public void writeEditorContentToFile() { String contentEditor = CodeMirrorEditorWrapper.getText(); String filePath = CodeMirrorEditorWrapper.getFileOpened(); repositoryToolsServices.updateContentFileAndCommit( filePath, contentEditor.getBytes(), login.toString(), new AsyncCallback<Boolean>() { @Override public void onFailure(Throwable throwable) { // To change body of implemented methods use File | Settings | File Templates. } @Override public void onSuccess(Boolean aBoolean) {} }); }
public void onModuleLoad() { // Listener CodeMirror // TODO Erreur JSNI avec FireFox CodeMirrorEditorWrapper.addOnChangeHandler(this); CodeMirrorEditorWrapper.setFileOpened(""); // get Divs RootPanel buttonBar = RootPanel.get("buttonBar"); RootPanel editor = RootPanel.get("editor"); systemFileRoot = RootPanel.get("fileSystem"); // add editor's content Grid gridEditor = new Grid(1, 1); // textArea Display codeMirror's stuff textAreaCodeShow = new HTML(); textAreaCodeShow.setStyleName("textAreaCodeShow"); gridEditor.setWidget(0, 0, textAreaCodeShow); editor.add(gridEditor); // add buttonBar's Content Grid grid = new Grid(2, 2); buttonBar.add(grid); buttonBar.setStyleName("buttonBarGrid"); Label labelError = new Label(); labelError.setVisible(false); labelError.setStyleName("labelError"); login = new StringBuilder(); password = new StringBuilder(); toolStripMenu = new ToolStripMenu(); formOpen = new FormOpen(labelError, toolStripMenu, this, systemFileRoot, login, password); formNew = new FormNew(labelError, toolStripMenu, this, systemFileRoot, login, password); toolStripMenu.setIHMCodeMirror(this); toolStripMenu.setFormNew(formNew); toolStripMenu.setFormOpen(formOpen); grid.setWidget(0, 0, toolStripMenu); grid.setWidget(1, 0, labelError); // shortcut keyboard for fun ~~ different behaviour between browser HandlerRegistration logHandler = Event.addNativePreviewHandler( new NativePreviewHandler() { @Override public void onPreviewNativeEvent(NativePreviewEvent event) { ne = event.getNativeEvent(); if (ne.getType().equals("keydown") && ne.getCtrlKey() && (ne.getKeyCode() == 'n' || ne.getKeyCode() == 'N')) { ne.preventDefault(); Scheduler.get() .scheduleDeferred( new ScheduledCommand() { @Override public void execute() { if (formNew.isVisible()) { formNew.hide(); } else { formNew.show(); } } }); } else if (ne.getType().equals("keydown") && ne.getCtrlKey() && (ne.getKeyCode() == 'o' || ne.getKeyCode() == 'O')) { ne.preventDefault(); Scheduler.get() .scheduleDeferred( new ScheduledCommand() { @Override public void execute() { if (formOpen.isVisible()) { formOpen.hide(); } else { formOpen.show(); } } }); } else if (ne.getType().equals("keydown") && ne.getCtrlKey() && (ne.getKeyCode() == 's' || ne.getKeyCode() == 'S')) { ne.preventDefault(); Scheduler.get() .scheduleDeferred( new ScheduledCommand() { @Override public void execute() { if (!toolStripMenu.getBtnSave().isDisabled()) { // fonction to call for saving pushContentEditorToRepo(); } } }); } } }); // Auto-Save int savePeriod = 5000000; Scheduler.get() .scheduleFixedDelay( new RepeatingCommand() { @Override public boolean execute() { if (!toolStripMenu.getBtnSave().isDisabled()) { // fonction to call for saving pushContentEditorToRepo(); } return true; } }, savePeriod); }