blob: d090a76caa6ef01ffe46d5a98554ff3c227227fa [file] [log] [blame]
/**
*
* Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
*
* 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:
* Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
*
*
* This copyright notice shows up in the generated Java code
*
*/
package org.eclipse.osbp.xtext.messagedsl.ui.labeling
import org.eclipse.osbp.xtext.basic.ui.labeling.BasicDSLLabelProvider
import com.google.inject.Inject
import org.eclipse.osbp.xtext.messagedsl.MessageModel
import org.eclipse.osbp.xtext.messagedsl.MessagePackage
import org.eclipse.osbp.xtext.messagedsl.MessageCategory
import org.eclipse.osbp.xtext.messagedsl.MessageGroup
import org.eclipse.osbp.xtext.messagedsl.MessageItem
import org.eclipse.osbp.xtext.messagedsl.MessageDefaultFormat
import org.eclipse.osbp.xtext.messagedsl.MessageParameter
/**
* Provides labels for a EObjects.
*
* see http://www.eclipse.org/Xtext/documentation.html#labelProvider
*/
class MessageDslLabelProvider extends BasicDSLLabelProvider {
@Inject
new(org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider delegate) {
super(delegate);
}
/* ********************************************************************************************** */
/** Provides outline text for Message-DSL.
*
* Uses common (default) text for package and for import element.
*
* @see BasicDSLLabelProvider.text(Object)
*
* @param o Current outline element
*
* @return String instance.
*
* @since 160802, gu
* @date yymmdd, name
*/ /* ******************************************************************************************* */
override text ( Object o ) {
switch (o) {
MessageCategory : generateText( o, 'category', o.name )
MessageGroup : generateText( o, 'group' , o.name )
MessageItem : generateText( o, 'item' , o.name )
MessageParameter : {
switch (o.oftype) {
case BOOLEAN : generateText( o, 'boolean param' , o.name )
case INTEGER : generateText( o, 'integer param' , o.name )
case DOUBLE : generateText( o, 'double param' , o.name )
case STRING : generateText( o, 'string param' , o.name )
case CLASS : generateText( o, 'class param' , o.name )
case OBJECT : generateText( o, 'object param' , o.name )
case EXCEPTION : generateText( o, 'exception param', o.name )
}
}
MessageDefaultFormat: {
val item = (o.eContainer as MessageItem)
var desc = 'format'
if (o.equals(item.logFormat)) {
desc = 'log format'
}
else if (o.equals(item.showFormat)) {
desc = 'show format'
}
generateText( o, desc, o.format )
}
default : super.text( o )
}
}
/* ********************************************************************************************** */
/** Provides outline images for Message-DSL.
*
* Uses common (default) image for package and for import element.
*
* @see BasicDSLLabelProvider.image(Object)
*
* @param o Current outline element
*
* @return Image instance if requested image file was found, return value of overridden superclass
* method otherwise.
*
* @since yymmdd, name
* @date 160802, gu
*/ /* ******************************************************************************************* */
override image (Object o) {
switch (o) {
MessageModel : getInternalImage( 'dsl_message.gif' , class )
MessagePackage : getInternalImage( 'package.gif' , class )
MessageCategory : getInternalImage( 'category.gif' , class )
MessageGroup : getInternalImage( 'group.gif' , class )
MessageItem : getInternalImage( 'message_info.gif', class )
MessageParameter : {
switch (o.oftype) {
case BOOLEAN : getInternalImage( 'boolean.gif' , class )
case INTEGER : getInternalImage( 'int.gif' , class )
case DOUBLE : getInternalImage( 'double.gif' , class )
case STRING : getInternalImage( 'var_string.gif', class )
case CLASS : getInternalImage( 'class.gif' , class )
case OBJECT : getInternalImage( 'object.png' , class )
case EXCEPTION : getInternalImage( 'exception.gif' , class )
}
}
MessageDefaultFormat: {
val item = (o.eContainer as MessageItem)
if (o.equals(item.logFormat)) {
getInternalImage('agent_log_obj.gif', class)
}
else if (o.equals(item.showFormat)) {
getInternalImage('dsl_dialog.gif', class)
}
else {
getInternalImage('formatbuilder.gif', class)
}
}
default : null
}
}
}