blob: eb742b04eb5c2dc7bff8dd6d6bf55caf03b58546 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2008 IBM Corporation 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
*
* Contributors:
* Benjamin Cabe <benjamin.cabe@anyware-tech.com> - initial API and implementation
*******************************************************************************/
package org.eclipse.pde.internal.ua.ui;
import org.eclipse.pde.internal.core.util.PDETextHelper;
import org.eclipse.pde.internal.ua.core.cheatsheet.simple.ISimpleCSConstants;
import org.eclipse.pde.internal.ua.core.cheatsheet.simple.ISimpleCSObject;
import org.eclipse.pde.internal.ua.core.ctxhelp.ICtxHelpConstants;
import org.eclipse.pde.internal.ua.core.ctxhelp.text.CtxHelpObject;
import org.eclipse.pde.internal.ua.core.icheatsheet.comp.ICompCSConstants;
import org.eclipse.pde.internal.ua.core.icheatsheet.comp.ICompCSObject;
import org.eclipse.pde.internal.ua.core.toc.ITocConstants;
import org.eclipse.pde.internal.ua.core.toc.text.TocObject;
import org.eclipse.pde.internal.ui.util.SharedLabelProvider;
import org.eclipse.swt.graphics.Image;
public class PDEUserAssistanceLabelProvider extends SharedLabelProvider {
public PDEUserAssistanceLabelProvider() {
}
@Override
public String getText(Object obj) {
if (obj instanceof ISimpleCSObject) {
return getObjectText((ISimpleCSObject) obj);
}
if (obj instanceof ICompCSObject) {
return getObjectText((ICompCSObject) obj);
}
if (obj instanceof TocObject) {
return getObjectText((TocObject) obj);
}
if (obj instanceof CtxHelpObject) {
return getObjectText((CtxHelpObject) obj);
}
return super.getText(obj);
}
public String getObjectText(ISimpleCSObject obj) {
int limit = 50;
if (obj.getType() == ISimpleCSConstants.TYPE_CHEAT_SHEET) {
limit = 40;
} else if (obj.getType() == ISimpleCSConstants.TYPE_ITEM) {
limit = 36;
} else if (obj.getType() == ISimpleCSConstants.TYPE_INTRO) {
limit = 36;
} else if (obj.getType() == ISimpleCSConstants.TYPE_SUBITEM) {
limit = 32;
}
return PDETextHelper.truncateAndTrailOffText(PDETextHelper.translateReadText(obj.getName()), limit);
}
public String getObjectText(ICompCSObject obj) {
int limit = 40;
ICompCSObject parent = obj.getParent();
while (parent != null) {
limit = limit - 4;
parent = parent.getParent();
}
return PDETextHelper.truncateAndTrailOffText(PDETextHelper.translateReadText(obj.getName()), limit);
}
public String getObjectText(TocObject obj) {
return PDETextHelper.translateReadText(obj.getName());
}
public String getObjectText(CtxHelpObject obj) {
return PDETextHelper.translateReadText(obj.getName());
}
@Override
public Image getImage(Object obj) {
if (obj instanceof ISimpleCSObject) {
return getObjectImage((ISimpleCSObject) obj);
}
if (obj instanceof ICompCSObject) {
return getObjectImage((ICompCSObject) obj);
}
if (obj instanceof TocObject) {
return getObjectImage((TocObject) obj);
}
if (obj instanceof CtxHelpObject) {
return getObjectImage((CtxHelpObject) obj);
}
return super.getImage(obj);
}
private Image getObjectImage(ISimpleCSObject object) {
if (object.getType() == ISimpleCSConstants.TYPE_ITEM) {
return get(PDEUserAssistanceUIPluginImages.DESC_CSITEM_OBJ);
} else if (object.getType() == ISimpleCSConstants.TYPE_SUBITEM) {
return get(PDEUserAssistanceUIPluginImages.DESC_CSSUBITEM_OBJ);
} else if (object.getType() == ISimpleCSConstants.TYPE_REPEATED_SUBITEM) {
return get(PDEUserAssistanceUIPluginImages.DESC_CSUNSUPPORTED_OBJ);
} else if (object.getType() == ISimpleCSConstants.TYPE_CONDITIONAL_SUBITEM) {
return get(PDEUserAssistanceUIPluginImages.DESC_CSUNSUPPORTED_OBJ);
} else if (object.getType() == ISimpleCSConstants.TYPE_CHEAT_SHEET) {
return get(PDEUserAssistanceUIPluginImages.DESC_SIMPLECS_OBJ);
} else if (object.getType() == ISimpleCSConstants.TYPE_INTRO) {
return get(PDEUserAssistanceUIPluginImages.DESC_CSINTRO_OBJ);
} else if (object.getType() == ISimpleCSConstants.TYPE_PERFORM_WHEN) {
return get(PDEUserAssistanceUIPluginImages.DESC_CSUNSUPPORTED_OBJ);
}
return get(PDEUserAssistanceUIPluginImages.DESC_SIMPLECS_OBJ, F_ERROR);
}
private Image getObjectImage(ICompCSObject object) {
if (object.getType() == ICompCSConstants.TYPE_TASK) {
return get(PDEUserAssistanceUIPluginImages.DESC_SIMPLECS_OBJ);
} else if (object.getType() == ICompCSConstants.TYPE_TASKGROUP) {
return get(PDEUserAssistanceUIPluginImages.DESC_CSTASKGROUP_OBJ);
} else if (object.getType() == ICompCSConstants.TYPE_COMPOSITE_CHEATSHEET) {
return get(PDEUserAssistanceUIPluginImages.DESC_COMPCS_OBJ);
}
return get(PDEUserAssistanceUIPluginImages.DESC_SIMPLECS_OBJ, F_ERROR);
}
private Image getObjectImage(TocObject object) {
switch (object.getType()) {
case ITocConstants.TYPE_TOC : {
return get(PDEUserAssistanceUIPluginImages.DESC_TOC_OBJ);
}
case ITocConstants.TYPE_TOPIC : { //Return the leaf topic icon for a topic with no children
if (object.getChildren().isEmpty()) {
return get(PDEUserAssistanceUIPluginImages.DESC_TOC_LEAFTOPIC_OBJ);
}
//Return the regular topic icon for a topic with children
return get(PDEUserAssistanceUIPluginImages.DESC_TOC_TOPIC_OBJ);
}
case ITocConstants.TYPE_LINK : {
return get(PDEUserAssistanceUIPluginImages.DESC_TOC_LINK_OBJ);
}
case ITocConstants.TYPE_ANCHOR : {
return get(PDEUserAssistanceUIPluginImages.DESC_TOC_ANCHOR_OBJ);
}
default :
return get(PDEUserAssistanceUIPluginImages.DESC_SIMPLECS_OBJ, F_ERROR);
}
}
private Image getObjectImage(CtxHelpObject object) {
switch (object.getType()) {
case ICtxHelpConstants.TYPE_ROOT : {
return get(PDEUserAssistanceUIPluginImages.DESC_TOC_OBJ);
}
case ICtxHelpConstants.TYPE_CONTEXT : {
return get(PDEUserAssistanceUIPluginImages.DESC_CTXHELP_CONTEXT_OBJ);
}
case ICtxHelpConstants.TYPE_DESCRIPTION : {
return get(PDEUserAssistanceUIPluginImages.DESC_CTXHELP_DESC_OBJ);
}
case ICtxHelpConstants.TYPE_TOPIC : {
return get(PDEUserAssistanceUIPluginImages.DESC_TOC_LEAFTOPIC_OBJ);
}
case ICtxHelpConstants.TYPE_COMMAND : {
return get(PDEUserAssistanceUIPluginImages.DESC_CTXHELP_COMMAND_OBJ);
}
default :
return get(PDEUserAssistanceUIPluginImages.DESC_SIMPLECS_OBJ, F_ERROR);
}
}
}