/*******************************************************************************
* Copyright (c) 2015 INRIA.
* 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:
* - Fawaz PARAISO
*******************************************************************************/
package org.occiware.clouddesigner.occi.docker.preference.preferences;
import java.util.Properties;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.handlers.HandlerUtil;
import org.occiware.clouddesigner.occi.docker.preference.Activator;
import org.occiware.clouddesigner.occi.docker.preference.PreferenceUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class PreferenceValues extends AbstractHandler{
// Initialize logger for PreferenceValues.
private static Logger LOGGER = LoggerFactory.getLogger(PreferenceValues.class);
private String username;
private String password;
private String email;
private String version;
private String url;
public PreferenceValues() {
try {
String username = Activator.getDefault().getPreferenceStore().getString(PreferenceConstants.P_STRING_USERNAME);
setUsername(username);
String password = Activator.getDefault().getPreferenceStore().getString(PreferenceConstants.P_STRING_PASSWORD);
setPassword(password);
String email = Activator.getDefault().getPreferenceStore().getString(PreferenceConstants.P_STRING_EMAIL);
setEmail(email);
String version = Activator.getDefault().getPreferenceStore().getString(PreferenceConstants.P_STRING_VERSION);
setVersion(version);
String url = Activator.getDefault().getPreferenceStore().getString(PreferenceConstants.P_STRING_URL);
setUrl(url);
Activator.getDefault().getPreferenceStore()
.addPropertyChangeListener(new IPropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent event) {
if (event.getProperty() == PreferenceConstants.P_STRING_USERNAME) {
setUsername(event.getNewValue().toString());
}
if (event.getProperty() == PreferenceConstants.P_STRING_PASSWORD) {
setPassword(event.getNewValue().toString());
}
if (event.getProperty() == PreferenceConstants.P_STRING_EMAIL) {
setEmail(event.getNewValue().toString());
}
if (event.getProperty() == PreferenceConstants.P_STRING_VERSION) {
setEmail(event.getNewValue().toString());
}
if (event.getProperty() == PreferenceConstants.P_STRING_URL) {
setEmail(event.getNewValue().toString());
}
}
});
} catch (NullPointerException e) {
// Load data from docker properties file.
Properties p = (new PreferenceUtil()).loadConfig();
setUsername(p.get("docker.username").toString());
setPassword(p.get("docker.password").toString());
setEmail(p.get("docker.email").toString());
setVersion(p.get("api.version").toString());
setUrl(p.get("docker.url").toString());
}
}
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
Shell shell = HandlerUtil.getActiveWorkbenchWindowChecked(event).getShell();
String username = Activator.getDefault().getPreferenceStore().getString(PreferenceConstants.P_STRING_USERNAME);
setUsername(username);
MessageDialog.openInformation(shell, "Info", username);
LOGGER.info(username + "\n\n\n\n\n");
String password = Activator.getDefault().getPreferenceStore().getString(PreferenceConstants.P_STRING_PASSWORD);
setPassword(password);
LOGGER.info(password + "\n\n\n\n\n");
String email = Activator.getDefault().getPreferenceStore().getString(PreferenceConstants.P_STRING_EMAIL);
setEmail(email);
LOGGER.info(email + "\n\n\n\n\n");
return null;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getVersion() {
return version;
}
public void setVersion(String version) {
this.version = version;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
}