/******************************************************************************* * Copyright © 2011, 2013 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation * *******************************************************************************/ package org.eclipse.edt.gen.generator.example.ide; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.ProjectScope; import org.eclipse.core.runtime.preferences.IEclipsePreferences; import org.eclipse.edt.ide.compiler.EDTCompilerIDEPlugin; import org.eclipse.edt.ide.ui.preferences.AbstractGeneratorTabProvider; import org.eclipse.edt.ide.ui.preferences.GenerationSettingsComposite; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; /** * This is a sample generator tab provider class. */ public class ExampleGeneratorTabProvider extends AbstractGeneratorTabProvider { private GenerationSettingsComposite genSettings; private IEclipsePreferences projectPreferenceStore; /** * Define the tab contents within the parent composite. * @param parent * @return */ @Override public Control getTabContent(Composite parent) { if (getComposite() == null) { setComposite(new Composite(parent, SWT.NULL)); GridLayout layout = new GridLayout(); layout.numColumns = 1; getComposite().setLayout(layout); getComposite().setLayoutData(new GridData(GridData.FILL_BOTH)); getComposite().setFont(parent.getFont()); if (getResource() != null) { this.projectPreferenceStore = new ProjectScope(getResource().getProject()).getNode(Activator.PLUGIN_ID); } genSettings = new GenerationSettingsComposite(getComposite(), SWT.NULL, getResource(), Activator.getDefault().getPreferenceStore(), this.projectPreferenceStore, Activator.PROPERTY_EXAMPLEGEN_DIR, Activator.PROPERTY_EXAMPLEGEN_ARGUMENTS, Activator.PREFERENCE_DEFAULT_EXAMPLEGEN_DIRECTORY, getStatusChangeListener(), getGeneratorId()); genSettings.setLayoutData(new GridData(GridData.FILL_BOTH)); } return this.getComposite(); } @Override public void performApply() { performOk(); } @Override public boolean performOk() { return genSettings.performOK(); } @Override public void performDefaults() { genSettings.performDefaults(); } @Override public void performRemoval() { genSettings.performRemoval(); } @Override public void performAddition() { genSettings.performAddition(); } @Override public IEclipsePreferences getProjectPreferenceStore() { return this.projectPreferenceStore; } @Override public void removePreferencesForAResource() { if (genSettings != null) { genSettings.removePreferencesForAResource(); } } @Override public void removePreferencesForAllResources() { if (genSettings != null) { genSettings.removePreferencesForAllResources(); } } public void setResource( IResource resource ) { super.setResource(resource); this.projectPreferenceStore = new ProjectScope(getResource().getProject()).getNode(EDTCompilerIDEPlugin.PLUGIN_ID); if(genSettings != null){ genSettings.setResource(resource); } } }