/* Copyright (C) 2009 Mobile Sorcery AB
This program is free software; you can redistribute it and/or modify it
under the terms of the Eclipse Public License v1.0.
This program 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 Eclipse Public License v1.0 for
more details.
You should have received a copy of the Eclipse Public License v1.0 along
with this program. It is also available at http://www.eclipse.org/legal/epl-v10.html
*/
package com.mobilesorcery.sdk.update.internal.preferences;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.preference.BooleanFieldEditor;
import org.eclipse.jface.preference.FieldEditorPreferencePage;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
import com.mobilesorcery.sdk.core.CoreMoSyncPlugin;
import com.mobilesorcery.sdk.core.MoSyncTool;
import com.mobilesorcery.sdk.core.Util;
import com.mobilesorcery.sdk.update.MosyncUpdatePlugin;
import com.mobilesorcery.sdk.update.UpdateManager;
public class ProfileUpdatesPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
private Text hhashText;
private Button clearSettings;
public ProfileUpdatesPreferencePage() {
super(Messages.ProfileUpdatesPreferencePage_Title, CoreMoSyncPlugin.getImageDescriptor("/icons/mosyncproject.png"), GRID); //$NON-NLS-2$
IPreferenceStore store = MosyncUpdatePlugin.getDefault().getPreferenceStore();
setPreferenceStore(store);
}
@Override
protected void createFieldEditors() {
BooleanFieldEditor autoUpdate = new BooleanFieldEditor(MoSyncTool.AUTO_UPDATE_PREF, Messages.ProfileUpdatesPreferencePage_AutoUpdate, getFieldEditorParent());
addField(autoUpdate);
Composite registration = new Composite(getFieldEditorParent(), SWT.NONE);
registration.setLayout(new GridLayout(2, false));
registration.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
Label reg = new Label(registration, SWT.NONE);
reg.setText(Messages.ProfileUpdatesPreferencePage_RegistrationDescription);
reg.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
clearSettings = new Button(registration, SWT.PUSH);
clearSettings.setText(Messages.ProfileUpdatesPreferencePage_ClearRegistrationInfo);
clearSettings.setLayoutData(new GridData(SWT.RIGHT, SWT.TOP, false, false));
hhashText = new Text(registration, SWT.READ_ONLY | SWT.SINGLE);
GridData emailData = new GridData(GridData.FILL_HORIZONTAL);
emailData.horizontalSpan = 2;
hhashText.setLayoutData(emailData);
updateUI();
clearSettings.addListener(SWT.Selection, new Listener() {
@Override
public void handleEvent(Event event) {
boolean result = MessageDialog.openQuestion(getShell(), Messages.ProfileUpdatesPreferencePage_AreYouSureTitle, Messages.ProfileUpdatesPreferencePage_AreYouSureMessage);
if (result) {
UpdateManager.getDefault().clearRegistrationInfo();
updateUI();
}
}
});
}
private void updateUI() {
String hhash = MoSyncTool.getDefault().getProperty(MoSyncTool.USER_HASH_PROP_2);
if (Util.isEmpty(hhash)) {
hhashText.setText(Messages.ProfileUpdatesPreferencePage_NotRegistered);
} else {
hhashText.setText(hhash);
}
hhashText.setEnabled(!Util.isEmpty(hhash));
clearSettings.setEnabled(!Util.isEmpty(hhash));
}
@Override
public void init(IWorkbench window) {
}
}