package com.laboki.eclipse.plugin.smartsave.preferences.ui;
import org.eclipse.jface.preference.PreferencePage;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
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 com.laboki.eclipse.plugin.smartsave.events.PreferencesWidgetDisposedEvent;
import com.laboki.eclipse.plugin.smartsave.main.EventBus;
public final class ContentTypePreferencesPage extends PreferencePage
implements
IWorkbenchPreferencePage {
public ContentTypePreferencesPage() {}
public ContentTypePreferencesPage(final String title) {
super(title);
}
public ContentTypePreferencesPage(
final String title,
final ImageDescriptor image) {
super(title, image);
}
@Override
public void
init(final IWorkbench workbench) {}
@Override
protected Control
createContents(final Composite parent) {
final Composite composite = Util.createComposite(parent, 1);
ContentTypePreferencesPage.createLabel(composite);
ContentTypePreferencesPage.createSearchField(composite);
ContentTypePreferencesPage.createListView(composite);
parent.layout();
parent.pack();
return composite;
}
private static void
createLabel(final Composite parent) {
final Label label = new Label(parent, SWT.WRAP);
final String text =
"Enable or disable smart save for specific file types.";
final GridData data = new GridData();
data.horizontalAlignment = GridData.FILL;
data.grabExcessHorizontalSpace = true;
data.widthHint = parent.getMonitor().getClientArea().width / 8;
label.setLayoutData(data);
label.setText(text);
parent.layout();
parent.pack();
}
private static void
createSearchField(final Composite parent) {
new ContentTypeText(parent).start();
parent.layout();
parent.pack();
}
private static void
createListView(final Composite parent) {
new ContentTypeTableViewer(parent).start();
parent.layout();
parent.pack();
}
@Override
public void
dispose() {
EventBus.post(new PreferencesWidgetDisposedEvent());
super.dispose();
}
}