From 8d7d6b8e3d9586f42503be2dcf6e20b2753be9fb Mon Sep 17 00:00:00 2001 From: angelozerr Date: Mon, 2 Nov 2015 17:44:33 +0100 Subject: [PATCH 1/2] Add a tern "Server" preferences page. --- .../plugin.xml | 2 +- eclipse/tern.eclipse.ide.ui/plugin.properties | 1 + eclipse/tern.eclipse.ide.ui/plugin.xml | 4 + .../ide/internal/ui/TernUIMessages.java | 5 +- .../ide/internal/ui/TernUIMessages.properties | 4 +- .../TernGlobalPreferencesPage.java | 37 +------ .../TernServerPreferencesPage.java | 97 +++++++++++++++++++ 7 files changed, 113 insertions(+), 37 deletions(-) create mode 100644 eclipse/tern.eclipse.ide.ui/src/tern/eclipse/ide/internal/ui/preferences/TernServerPreferencesPage.java diff --git a/eclipse/tern.eclipse.ide.server.nodejs.ui/plugin.xml b/eclipse/tern.eclipse.ide.server.nodejs.ui/plugin.xml index 5b9863bea..ee94a62ce 100644 --- a/eclipse/tern.eclipse.ide.server.nodejs.ui/plugin.xml +++ b/eclipse/tern.eclipse.ide.server.nodejs.ui/plugin.xml @@ -7,7 +7,7 @@ point="org.eclipse.ui.preferencePages"> diff --git a/eclipse/tern.eclipse.ide.ui/plugin.properties b/eclipse/tern.eclipse.ide.ui/plugin.properties index db6c957d4..5b0a40791 100644 --- a/eclipse/tern.eclipse.ide.ui/plugin.properties +++ b/eclipse/tern.eclipse.ide.ui/plugin.properties @@ -27,6 +27,7 @@ TernModulesPropertyPage.name=Modules TernScriptPathsPropertyPage.name=Script Paths TernDevelopmentPropertyPage.name=Development TernRepositoryPropertyPage.name=Repository +TernServerPropertyPage.name=Server TernValidationPropertyPage.name=Validation # Extension points diff --git a/eclipse/tern.eclipse.ide.ui/plugin.xml b/eclipse/tern.eclipse.ide.ui/plugin.xml index bdc3e2098..282eb155e 100644 --- a/eclipse/tern.eclipse.ide.ui/plugin.xml +++ b/eclipse/tern.eclipse.ide.ui/plugin.xml @@ -113,6 +113,10 @@ category="tern.eclipse.ide.ui.preferences.development" class="tern.eclipse.ide.internal.ui.preferences.TernRepositoryPreferencesPage" id="tern.eclipse.ide.ui.preferences.repository" /> + - initial API and implementation + */ +package tern.eclipse.ide.internal.ui.preferences; + +import org.eclipse.core.runtime.preferences.IScopeContext; +import org.eclipse.core.runtime.preferences.InstanceScope; +import org.eclipse.jface.preference.ComboFieldEditor; +import org.eclipse.jface.preference.FieldEditorPreferencePage; +import org.eclipse.jface.preference.IPreferenceStore; +import org.eclipse.jface.util.PropertyChangeEvent; +import org.eclipse.ui.IWorkbench; +import org.eclipse.ui.IWorkbenchPreferencePage; +import org.eclipse.ui.preferences.ScopedPreferenceStore; + +import tern.eclipse.ide.core.ITernServerType; +import tern.eclipse.ide.core.TernCorePlugin; +import tern.eclipse.ide.core.preferences.TernCorePreferenceConstants; +import tern.eclipse.ide.internal.ui.TernUIMessages; +import tern.eclipse.ide.ui.ImageResource; + +/** + * Tern Server preferences page. + * + */ +public class TernServerPreferencesPage extends FieldEditorPreferencePage + implements IWorkbenchPreferencePage { + + public TernServerPreferencesPage() { + super(GRID); + setDescription(TernUIMessages.TernServerPreferencesPage_desc); + setImageDescriptor(ImageResource + .getImageDescriptor(ImageResource.IMG_LOGO)); + } + + @Override + protected void createFieldEditors() { + + // Tern Server type combo + ITernServerType[] serverTypes = TernCorePlugin + .getTernServerTypeManager().getTernServerTypes(); + String[][] types = new String[serverTypes.length + 1][2]; + types[0][0] = " -- Choose your server type --"; //$NON-NLS-1$ + types[0][1] = ""; //$NON-NLS-1$ + + for (int i = 0; i < serverTypes.length; i++) { + types[i + 1][0] = serverTypes[i].getName(); + types[i + 1][1] = serverTypes[i].getId(); + } + + ComboFieldEditor ternServerEditor = new ComboFieldEditor( + TernCorePreferenceConstants.TERN_SERVER_TYPE, + TernUIMessages.TernServerPreferencesPage_serverType, types, + getFieldEditorParent()); + addField(ternServerEditor); + } + + @Override + public void init(IWorkbench workbench) { + + } + + @Override + protected IPreferenceStore doGetPreferenceStore() { + // IProject project = getProject(); + // ScopedPreferenceStore store; + // if (project == null) { + // // workspace settings + // IScopeContext scope = new InstanceScope(); + // return new ScopedPreferenceStore(scope, TernCorePlugin.PLUGIN_ID); + // } else { + // // project settings + // IScopeContext projectScope = new ProjectScope(project); + // preferences = projectScope.getNode(TernCorePlugin.PLUGIN_ID); + // store = new ScopedPreferenceStore(projectScope, + // TernCorePlugin.PLUGIN_ID); + // } + // return store; + IScopeContext scope = new InstanceScope(); + return new ScopedPreferenceStore(scope, TernCorePlugin.PLUGIN_ID); + + } + + @Override + public void propertyChange(PropertyChangeEvent event) { + super.propertyChange(event); + TernCorePlugin.getTernServerTypeManager().refresh(); + } + +} From 8332458d1dac6e4caf15b051ee99ac8105b79223 Mon Sep 17 00:00:00 2001 From: angelozerr Date: Tue, 3 Nov 2015 11:49:49 +0100 Subject: [PATCH 2/2] Use last version of tern-tabris. --- core/ternjs/node_modules/tern-tabris/package.json | 2 +- core/ternjs/node_modules/tern-tabris/tabris.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/core/ternjs/node_modules/tern-tabris/package.json b/core/ternjs/node_modules/tern-tabris/package.json index 0e9013612..13d457465 100644 --- a/core/ternjs/node_modules/tern-tabris/package.json +++ b/core/ternjs/node_modules/tern-tabris/package.json @@ -1,7 +1,7 @@ { "name": "tern-tabris", "license": "MIT", - "version": "0.4.0", + "version": "0.5.0", "main": "tabris.js", "author": "Angelo ZERR ", "description": "A Tern plugin adding support for tabris.", diff --git a/core/ternjs/node_modules/tern-tabris/tabris.js b/core/ternjs/node_modules/tern-tabris/tabris.js index 9c3e7037b..70f1f2a32 100644 --- a/core/ternjs/node_modules/tern-tabris/tabris.js +++ b/core/ternjs/node_modules/tern-tabris/tabris.js @@ -130,8 +130,8 @@ var widgetType = _self.getType(), propertyName = argNodes[0].value, propertyType = getProxyPropertyType(widgetType, propertyName); argNodes[0]._tabris = {"type" : "tabris_Proxy_get", "proxyType" : widgetType}; - if (propertyType || propertyType.isEmpty()) return propertyType.getType(); - return infer.ANull; + if (propertyType && !propertyType.isEmpty()) return propertyType.getType(); + return infer.ANull; }); infer.registerFunction("tabris_Proxy_set", function(_self, args, argNodes) {