blob: db07e0b43c59a940715f519336848f8f9f52c880 [file] [log] [blame]
/*********************************************************************
* Copyright (c) 2013 Boeing
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Boeing - initial API and implementation
**********************************************************************/
package org.eclipse.osee.ats.ide.util;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.osee.ats.api.IAtsConfigObject;
import org.eclipse.osee.ats.api.IAtsObject;
import org.eclipse.osee.ats.api.IAtsWorkItem;
import org.eclipse.osee.ats.api.ai.IAtsActionableItem;
import org.eclipse.osee.ats.api.config.TeamDefinition;
import org.eclipse.osee.ats.api.data.AtsArtifactTypes;
import org.eclipse.osee.ats.api.team.IAtsTeamDefinition;
import org.eclipse.osee.ats.api.version.IAtsVersion;
import org.eclipse.osee.ats.ide.internal.AtsApiService;
import org.eclipse.osee.framework.jdk.core.util.Collections;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.ui.skynet.ArtifactImageManager;
import org.eclipse.osee.framework.ui.swt.ImageManager;
import org.eclipse.search.ui.text.Match;
import org.eclipse.swt.graphics.Image;
/**
* @author Donald G. Dunne
*/
public class AtsObjectLabelProvider extends LabelProvider {
private final boolean showActive;
private final boolean showAtsId;
public AtsObjectLabelProvider() {
this(false);
}
public AtsObjectLabelProvider(boolean showActive) {
this(showActive, false);
}
public AtsObjectLabelProvider(boolean showActive, boolean showAtsId) {
super();
this.showActive = showActive;
this.showAtsId = showAtsId;
}
@Override
public Image getImage(Object element) {
if (element instanceof Artifact) {
return ArtifactImageManager.getImage(AtsApiService.get().getQueryServiceIde().getArtifact(element));
} else if (element instanceof IAtsActionableItem) {
return ArtifactImageManager.getImage(AtsArtifactTypes.ActionableItem);
} else if (element instanceof IAtsTeamDefinition || element instanceof TeamDefinition) {
return ArtifactImageManager.getImage(AtsArtifactTypes.TeamDefinition);
} else if (element instanceof IAtsVersion) {
return ArtifactImageManager.getImage(AtsArtifactTypes.Version);
} else if (element instanceof Match && ((Match) element).getElement() instanceof Artifact) {
return ArtifactImageManager.getImage(
AtsApiService.get().getQueryServiceIde().getArtifact(((Match) element).getElement()));
} else if (element instanceof String) {
return null;
}
return ImageManager.getImage(ImageManager.MISSING);
}
@Override
public String getText(Object element) {
String result = "";
if (element != null) {
if (element instanceof Match) {
element = ((Match) element).getElement();
}
if (element instanceof IAtsObject) {
IAtsObject artifact = (IAtsObject) element;
List<String> extraInfo = new ArrayList<>();
String name = artifact.getName();
extraInfo.add(name != null ? name : "");
result = Collections.toString(" ", extraInfo);
} else {
result = element.toString();
}
}
result = getAtsId(element, result);
result = getActiveTag(element, result);
return result;
}
private String getAtsId(Object element, String result) {
if (showAtsId && element instanceof IAtsWorkItem) {
IAtsWorkItem iAtsObject = (IAtsWorkItem) element;
result = String.format("[%s] - %s", iAtsObject.getAtsId(), result);
}
return result;
}
private String getActiveTag(Object element, String result) {
if (showActive && element instanceof IAtsConfigObject) {
IAtsConfigObject iAtsObject = (IAtsConfigObject) element;
result = String.format("%s (%s)", result, iAtsObject.isActive() ? "Active" : "InActive");
}
return result;
}
}