/*******************************************************************************
* Copyright (c) 2013 hangum.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Lesser Public License v2.1
* which accompanies this distribution, and is available at
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
*
* Contributors:
* hangum - initial API and implementation
******************************************************************************/
package com.hangum.tadpole.mongodb.core.ext.editors.javascript.browserfunction;
import org.apache.log4j.Logger;
import org.eclipse.swt.SWT;
import org.eclipse.swt.browser.Browser;
import org.eclipse.ui.PlatformUI;
import com.hangum.tadpole.ace.editor.core.dialogs.help.MongoDBShortcutHelpDialog;
import com.hangum.tadpole.ace.editor.core.texteditor.function.EditorFunctionService;
import com.hangum.tadpole.mongodb.core.ext.editors.javascript.ServerSideJavaScriptEditor;
/**
* query editor browser function
*
* @author hangum
*
*/
public class JavaScriptBrowserFunctionService extends EditorFunctionService {
private static final Logger logger = Logger.getLogger(JavaScriptBrowserFunctionService.class);
private ServerSideJavaScriptEditor editor;
public JavaScriptBrowserFunctionService(Browser browser, String name, ServerSideJavaScriptEditor editor) {
super(browser, name, editor);
this.editor = editor;
}
/**
* help popup
*/
protected void helpPopup() {
MongoDBShortcutHelpDialog dialog = new MongoDBShortcutHelpDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), SWT.NONE);
dialog.open();
}
@Override
protected Object doSave(Object[] arguments) {
boolean result = false;
try {
String newContents = (String) arguments[1];
result = editor.performSave(newContents);
} catch(Exception e) {
logger.error("do not save", e);
}
return result;
}
@Override
protected void doDirtyChanged(Object[] arguments) {
editor.setDirty(true);
}
@Override
protected void doExecuteQuery(Object[] arguments) {
if(logger.isDebugEnabled()) logger.debug("======= doExecuteQuery*** === ***");
}
@Override
protected void doExecutePlan(Object[] arguments) {
}
@Override
protected String doExecuteFormat(Object[] arguments) {
return "";
}
/* (non-Javadoc)
* @see com.hangum.tadpole.ace.editor.core.texteditor.function.EditorFunctionService#f4DMLOpen(java.lang.Object[])
*/
@Override
protected void f4DMLOpen(Object[] argument) {
if(logger.isDebugEnabled()) logger.debug("======= f4DMLOpen*** === ***");
}
/* (non-Javadoc)
* @see com.hangum.tadpole.ace.editor.core.texteditor.function.EditorFunctionService#generateSelect(java.lang.Object[])
*/
@Override
protected void generateSelect(Object[] argument) {
if(logger.isDebugEnabled()) logger.debug("======= generateSelect*** === ***");
}
@Override
protected String getContentAssist(Object[] arguments) {
return "";
}
@Override
protected Object doAutoSave(Object[] arguments) {
return null;
}
}