package org.fipro.eclipse.migration.e4.ui.view;
import javax.annotation.PostConstruct;
import javax.inject.Inject;
import javax.inject.Named;
import org.eclipse.e4.core.di.annotations.Optional;
import org.eclipse.e4.core.di.extensions.Preference;
import org.eclipse.e4.ui.services.IServiceConstants;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Text;
import org.fipro.eclipse.migration.e4.model.Person;
import org.fipro.eclipse.migration.e4.model.Person.Gender;
@SuppressWarnings("restriction")
public class DescriptionView {
Text description;
@PostConstruct
public void createPartControl(Composite parent) {
parent.setLayout(new FillLayout());
description = new Text(parent, SWT.MULTI | SWT.WRAP | SWT.READ_ONLY);
}
@Inject
void updateDescription(@Optional @Named(IServiceConstants.ACTIVE_SELECTION) Person person) {
if (description != null && !description.isDisposed()) {
if (person != null) {
description.setText(person.getFirstName() + " " + person.getLastName()
+ " is a " + (person.isMarried() ? "married " : "single ")
+ (Gender.MALE.equals(person.getGender()) ? "man" : "woman"));
}
else {
description.setText("");
}
}
}
@Inject
@Optional
void setTextColor(
@Preference(nodePath="org.fipro.eclipse.migration.e4.ui", value="description_color") String color) {
Color toUse = "blue".equals(color) ?
Display.getDefault().getSystemColor(SWT.COLOR_BLUE) : Display.getDefault().getSystemColor(SWT.COLOR_BLACK);
if (description != null && !description.isDisposed()) {
description.setForeground(toUse);
}
}
}