/******************************************************************************* * Copyright (c) 2011 BestSolution.at 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: * Tom Schindl<tom.schindl@bestsolution.at> - initial API and implementation *******************************************************************************/ package at.bestsolution.efxclipse.tooling.css.ui.labeling; import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider; import org.eclipse.xtext.ui.label.DefaultEObjectLabelProvider; import at.bestsolution.efxclipse.tooling.css.cssDsl.ruleset; import at.bestsolution.efxclipse.tooling.css.cssDsl.selector; import at.bestsolution.efxclipse.tooling.css.cssDsl.simple_selector; import at.bestsolution.efxclipse.tooling.css.cssDsl.stylesheet; import at.bestsolution.efxclipse.tooling.css.cssDsl.sub_selector; import at.bestsolution.efxclipse.tooling.css.cssDsl.term; import at.bestsolution.efxclipse.tooling.css.cssDsl.termGroup; import com.google.inject.Inject; /** * Provides labels for a EObjects. * * see http://www.eclipse.org/Xtext/documentation/latest/xtext.html#labelProvider */ public class CssDslLabelProvider extends DefaultEObjectLabelProvider { @Inject public CssDslLabelProvider(AdapterFactoryLabelProvider delegate) { super(delegate); } String text(ruleset value) { StringBuilder b = new StringBuilder(); for( selector s : value.getSelectors() ) { if( b.length() > 0 ) { b.append(", "); } b.append(text(s)); } return b.toString(); } String text(selector value) { StringBuilder b = new StringBuilder(/*"se-"*/); for( simple_selector s : value.getSimpleselectors() ) { b.append(text(s)); } if( value.getSelector() != null ) { if( value.getCombinator() != null ) { b.append(" " + value.getCombinator()); } b.append(" " + text(value.getSelector())); } return b.toString(); } String text(simple_selector value) { StringBuilder b = new StringBuilder(/*"si-"*/); if( value.getElement() != null ) { b.append(value.getElement()); } for( sub_selector sub : value.getSubSelectors() ) { if( sub.getId() != null ) { b.append(sub.getId()); } if( sub.getClass_() != null ) { b.append(sub.getClass_()); } if( sub.getPseudoclass() != null ) { b.append(sub.getPseudoclass()); } } return b.toString(); } String text(term value) { if( value.getHexColor() != null ) { return value.getHexColor(); } else if( value.getIdentifier() != null) { return value.getIdentifier(); } else if( value.getNumber() != null ) { return value.getNumber(); } else if( value.getStringValue() != null ) { return value.getStringValue(); } else if( value.getFunction() != null ) { return "<function>"; } return null; } String text(termGroup value) { return "<group>"; } // public String text(Object t) { // return t.toString(); // } // String text(Dim4Size value) { // StringBuilder b = new StringBuilder(); // // for( String s : value.getValues() ) { // if( b.length() > 0 ) { // b.append(" "); // } // b.append(s); // } // // return b.toString(); // } // // String text(PointValue value) { // if( value.eContainer() != null && value.eContainer().eClass().equals(CssDslPackage.Literals.LINEAR_GRADIENT) ) { // if( value.eContainingFeature() != null && value.eContainingFeature().equals(CssDslPackage.Literals.LINEAR_GRADIENT__START) ) { // return "start"; // } else { // return "end"; // } // } // // return "point"; // } // // // String text(StopValue value) { // return "stop"; // } // // String text(LinearGradient value) { // return "linear-gradient"; // } // String text(stylesheet value) { return "stylesheet"; } // String text(BgSize value) { // if( value.getPredefined() != null ) { // return value.getPredefined(); // } else { // return value.getYsize() != null ? value.getXsize() + " " + value.getYsize() : value.getXsize(); // } // } // // String text(fx_background_image_size_property value) { // StringBuilder b = new StringBuilder(); // // for( BgSize s : value.getValues() ) { // if( b.length() > 0 ) { // b.append(", "); // } // b.append(text(s)); // } // // return b.toString(); // } /* //Labels and icons can be computed like this: String text(MyModel ele) { return "my "+ele.getName(); } String image(MyModel ele) { return "MyModel.gif"; } */ }