blob: 86607e54653e9edf03c3fb036a78e51de4a74094 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004, 2007 Mylyn project committers and others.
* 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
*******************************************************************************/
package org.eclipse.mylyn.internal.sandbox.dev.properties;
import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
import org.eclipse.ui.views.properties.IPropertyDescriptor;
import org.eclipse.ui.views.properties.IPropertySource;
import org.eclipse.ui.views.properties.TextPropertyDescriptor;
/**
* Display various {@link AbstractTask} properties in the Eclipse Properties View.<br /> See <a
* href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=210639">Bug 210639</a> and <a
* href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=208275">Bug 208275</a><br />
*
* @author Maarten Meijer
*/
public class AbstractTaskPropertiesSource extends AbstractTaskContainerPropertySource implements IPropertySource {
private static final String NULL_MSG = "<null>";
private static final String LAST_READ = "last_read";
private static final String STATE = "state";
private static final String STATUS = "status";
private static final String URL = "url";
private static final String KIND = "kind";
private static final String OWNER = "owner";
private static final String PARENT = "parent";
private static final String SCHEDULED = "scheduled";
public AbstractTaskPropertiesSource(AbstractTask adaptableObject) {
super(adaptableObject);
}
@Override
public IPropertyDescriptor[] getPropertyDescriptors() {
TextPropertyDescriptor summary = new TextPropertyDescriptor(SUMMARY, "Summary");
summary.setCategory(description);
TextPropertyDescriptor owner = new TextPropertyDescriptor(OWNER, "Owner");
owner.setCategory(description);
TextPropertyDescriptor scheduled = new TextPropertyDescriptor(SCHEDULED, "Scheduled for");
scheduled.setCategory(description);
TextPropertyDescriptor parent = new TextPropertyDescriptor(PARENT, "Parent Containers");
parent.setCategory(description);
TextPropertyDescriptor kind = new TextPropertyDescriptor(KIND, "Repository Connector Kind");
kind.setCategory(description);
TextPropertyDescriptor url = new TextPropertyDescriptor(URL, "Repository URL");
url.setCategory(description);
TextPropertyDescriptor status = new TextPropertyDescriptor(STATUS, "Synchronization Status");
status.setCategory(description);
TextPropertyDescriptor state = new TextPropertyDescriptor(STATE, "Synchronization State");
state.setCategory(description);
TextPropertyDescriptor lastRead = new TextPropertyDescriptor(LAST_READ, "Last Read Timestamp");
lastRead.setCategory(description);
IPropertyDescriptor[] specific = new IPropertyDescriptor[] { summary, owner, scheduled, parent, kind, url,
status, state, lastRead };
return super.appendSpecifics(specific, super.getPropertyDescriptors());
}
@SuppressWarnings("deprecation")
@Override
public Object getPropertyValue(Object id) {
AbstractTask task = (AbstractTask) container;
if (SUMMARY.equals(id)) {
return task.getSummary();
} else if (OWNER.equals(id)) {
return task.getOwner();
} else if (SCHEDULED.equals(id)) {
return task.getScheduledForDate() == null ? NULL_MSG : task.getScheduledForDate();
} else if (PARENT.equals(id)) {
return (task).getParentContainers() == null ? NULL_MSG : (task).getParentContainers().toString();
} else if (KIND.equals(id)) {
return task.getConnectorKind();
} else if (URL.equals(id)) {
return task.getRepositoryUrl();
} else if (STATE.equals(id)) {
return task.getSynchronizationState() == null ? NULL_MSG : task.getSynchronizationState().toString();
} else if (STATUS.equals(id)) {
return task.getStatus() == null ? NULL_MSG : task.getStatus().toString();
} else if (LAST_READ.equals(id)) {
return task.getLastReadTimeStamp() == null ? NULL_MSG : task.getLastReadTimeStamp().toString();
}
return super.getPropertyValue(id);
}
}