/**
*
*/
package org.nightlabs.jfire.reporting.ui.parameter.guifactory.jfireobjects;
import java.util.Collection;
import java.util.Collections;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label;
import org.nightlabs.base.ui.composite.XComposite;
import org.nightlabs.base.ui.composite.XComposite.LayoutMode;
import org.nightlabs.jfire.base.ui.security.UserSearchComposite;
import org.nightlabs.jfire.reporting.ReportingConstants;
import org.nightlabs.jfire.reporting.parameter.config.ValueProviderConfig;
import org.nightlabs.jfire.reporting.parameter.id.ValueProviderID;
import org.nightlabs.jfire.reporting.ui.parameter.IValueProviderGUI;
import org.nightlabs.jfire.reporting.ui.parameter.IValueProviderGUIFactory;
import org.nightlabs.jfire.reporting.ui.resource.Messages;
import org.nightlabs.jfire.security.GlobalSecurityReflector;
import org.nightlabs.jfire.security.id.UserID;
/**
* @author Alexander Bieber <!-- alex [AT] nightlabs [DOT] de -->
*
*/
public class ValueProviderGUICurrentUserMultiple extends AbstractValueProviderGUIUsers {
public static class Factory implements IValueProviderGUIFactory {
public IValueProviderGUI<Collection<UserID>> createValueProviderGUI(ValueProviderConfig valueProviderConfig, boolean isScheduledReportParameterConfig) {
return new ValueProviderGUICurrentUserMultiple(valueProviderConfig);
}
public ValueProviderID getValueProviderID() {
return ReportingConstants.VALUE_PROVIDER_ID_CURRENT_USER_MULTIPLE;
}
public void setInitializationData(IConfigurationElement config, String propertyName, Object data) throws CoreException {
}
}
private Collection<UserID> currentUserID;
/**
*
*/
public ValueProviderGUICurrentUserMultiple(ValueProviderConfig valueProviderConfig) {
super(valueProviderConfig);
currentUserID = Collections.singleton(GlobalSecurityReflector.sharedInstance().getUserDescriptor().getUserObjectID());
}
/* (non-Javadoc)
* @see org.nightlabs.jfire.reporting.ui.parameter.IValueProviderGUI#createGUI(org.eclipse.swt.widgets.Composite)
*/
@Override
public Control createGUI(Composite wrapper) {
XComposite comp = new XComposite(wrapper, SWT.NONE, LayoutMode.TIGHT_WRAPPER);
Label label = new Label(comp, SWT.WRAP);
label.setText(
String.format(Messages.getString("org.nightlabs.jfire.reporting.ui.parameter.guifactory.jfireobjects.ValueProviderGUICurrentUserMultiple.label.preselectedUser.text"), //$NON-NLS-1$
currentUserID.iterator().next().userID));
super.createGUI(comp);
return comp;
}
@Override
protected int getTypeFlags() {
return UserSearchComposite.FLAG_TYPE_USER;
}
/* (non-Javadoc)
* @see org.nightlabs.jfire.reporting.ui.parameter.IValueProviderGUI#getOutputValue()
*/
@Override
public Collection<UserID> getOutputValue() {
Collection<UserID> superValue = super.getOutputValue();
if (superValue != null)
return superValue;
return currentUserID;
}
/* (non-Javadoc)
* @see org.nightlabs.jfire.reporting.ui.parameter.IValueProviderGUI#isAcquisitionComplete()
*/
@Override
public boolean isAcquisitionComplete() {
return true;
}
/* (non-Javadoc)
* @see org.nightlabs.jfire.reporting.ui.parameter.IValueProviderGUI#setInputParameterValue(java.lang.String, java.lang.Object)
*/
@Override
public void setInputParameterValue(String parameterID, Object value) {
}
}