Java tutorial
/******************************************************************************* * Copyright (c) 2000-present Liferay, Inc. All rights reserved. * * This library is free software; you can redistribute it and/or modify it under * the terms of the GNU Lesser General Public License as published by the Free * Software Foundation; either version 2.1 of the License, or (at your option) * any later version. * * This library is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more * details. * *******************************************************************************/ package com.liferay.ide.project.ui.pref; import java.io.IOException; import org.eclipse.core.runtime.preferences.InstanceScope; import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.jface.preference.PreferencePage; import org.eclipse.jface.viewers.ArrayContentProvider; import org.eclipse.jface.viewers.ComboViewer; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Label; import org.eclipse.ui.IWorkbench; import org.eclipse.ui.IWorkbenchPreferencePage; import org.eclipse.ui.preferences.ScopedPreferenceStore; import com.liferay.ide.project.core.ITargetPlatformConstant; import com.liferay.ide.project.core.ProjectCore; import com.liferay.ide.project.core.util.TargetPlatformUtil; /** * @author Lovett Li */ public class TargetPlatformSettingsPage extends PreferencePage implements IWorkbenchPreferencePage { public static final String PROJECT_UI_TARGETPLATFORM_PAGE_ID = "com.liferay.ide.project.ui.targetPlatformSettingsPage"; private ComboViewer targetPlatFormVersion; private ScopedPreferenceStore preferenceStore; public TargetPlatformSettingsPage() { super(); preferenceStore = new ScopedPreferenceStore(InstanceScope.INSTANCE, ProjectCore.PLUGIN_ID); } @Override public void init(IWorkbench workbench) { } private void initvaules() { IPreferenceStore store = getPreStore(); String version; if (store != null) { version = store.getString(ITargetPlatformConstant.CURRENT_TARGETFORM_VERSION).replace("[", "") .replace("]", ""); if (version == null || version.equals("")) { version = ITargetPlatformConstant.DEFAULT_TARGETFORM_VERSION; } } else { version = ITargetPlatformConstant.DEFAULT_TARGETFORM_VERSION; } final ISelection selection = new StructuredSelection(version); targetPlatFormVersion.setSelection(selection); } @Override protected Control createContents(Composite parent) { Composite comp = new Composite(parent, SWT.NONE); GridLayout layout = new GridLayout(2, false); layout.horizontalSpacing = 10; comp.setLayout(layout); new Label(comp, SWT.NONE).setText("Liferay Target Platform Version:"); targetPlatFormVersion = new ComboViewer(comp, SWT.READ_ONLY); targetPlatFormVersion.setLabelProvider(new LabelProvider() { @Override public String getText(Object element) { return element.toString(); } }); targetPlatFormVersion.setContentProvider(new ArrayContentProvider()); try { targetPlatFormVersion.setInput(TargetPlatformUtil.getAllTargetPlatfromVersions()); } catch (IOException e) { } initvaules(); return comp; } @Override public boolean performOk() { boolean result = super.performOk(); storeValues(); return result; } private void storeValues() { preferenceStore.setValue(ITargetPlatformConstant.CURRENT_TARGETFORM_VERSION, targetPlatFormVersion.getSelection().toString()); try { preferenceStore.save(); } catch (IOException e) { ProjectCore.logError("Can not save target platform preference", e); } } private IPreferenceStore getPreStore() { return preferenceStore; } }