Example usage for org.eclipse.jface.viewers StyledString append

List of usage examples for org.eclipse.jface.viewers StyledString append

Introduction

In this page you can find the example usage for org.eclipse.jface.viewers StyledString append.

Prototype

public StyledString append(char[] chars, Styler styler) 

Source Link

Document

Appends the string representation of the given character array with a style to the StyledString .

Usage

From source file:at.bestsolution.eclipse.properties.PropertyContentOutlinePage.java

License:Open Source License

@Override
public void createControl(Composite parent) {
    super.createControl(parent);
    TreeViewer viewer = getTreeViewer();
    viewer.setLabelProvider(new StyledCellLabelProvider() {
        @Override/*from  ww w .  ja va 2  s  .c  o m*/
        public void update(ViewerCell cell) {
            Object element = cell.getElement();
            if (element instanceof PropertyGroup) {
                cell.setText(((PropertyGroup) element).name);
                cell.setImage(Activator.getDefault().getImageRegistry().get(Activator.GROUP_ICON));
                cell.setStyleRanges(null);
            } else if (element instanceof Property) {
                cell.setImage(Activator.getDefault().getImageRegistry().get(Activator.KEY_ICON));
                StyledString s = new StyledString(((Property) element).pair.key);
                String text = ((Property) element).pair.value;
                if (text.length() > 20) {
                    text = text.substring(0, 20) + "...";
                }
                s.append(" : " + text, StyledString.DECORATIONS_STYLER);
                cell.setStyleRanges(s.getStyleRanges());
                cell.setText(s.getString());
            }
            super.update(cell);
        }
    });

    viewer.setContentProvider(new HierarchicalContentProvider());

    if (isSorted()) {
        setSorted(true);
    }

    createHierarchicalStructure();

    if (isHierarchical()) {
        viewer.setInput(hierarchicalStructure);
    } else {
        viewer.setInput(flatStructure);
    }
}

From source file:at.bestsolution.efxclipse.tooling.fxgraph.ui.contentassist.FXGraphProposalProvider.java

License:Open Source License

private void createCollectionPropnameProposals(IFXCollectionProperty prop, EObject model,
        ContentAssistContext context, EStructuralFeature typeReference, ICompletionProposalAcceptor acceptor) {
    ICompletionProposal p;/*w w  w. jav a2s.c  o  m*/
    if (prop.isSetable()) {
        StyledString s = new StyledString(prop.getName() + " : " + prop.getCollectionAsString());
        s.append(" - " + prop.getFXClass().getSimpleName(), StyledString.QUALIFIER_STYLER);
        p = createCompletionProposal(prop.getName() + " : ", s, IconKeys.getIcon(IconKeys.LIST_KEY),
                getPropertiesProposalsProposals(), context.getPrefix(), context);
    } else {
        StyledString s = new StyledString(prop.getName() + " : ["
                + (prop.getElementType() != null ? prop.getElementType().getElementName() : "?") + "]");
        s.append(" - " + prop.getFXClass().getSimpleName(), StyledString.QUALIFIER_STYLER);
        p = createCompletionProposal(prop.getName() + " : []", s, IconKeys.getIcon(IconKeys.LIST_KEY),
                getPropertiesProposalsProposals(), context.getPrefix(), context);
    }

    if (p instanceof ConfigurableCompletionProposal) {
        ConfigurableCompletionProposal cp = (ConfigurableCompletionProposal) p;
        cp.setAdditionalProposalInfo(model);
        cp.setHover(new HoverImpl(prop.getJavaElement()));

        if (!prop.isSetable()) {
            cp.setCursorPosition(cp.getCursorPosition() - 1);
        }
    }

    acceptor.accept(p);
}

From source file:at.bestsolution.efxclipse.tooling.fxgraph.ui.contentassist.FXGraphProposalProvider.java

License:Open Source License

private void createMapPropnameProposals(IFXMapProperty prop, EObject model, ContentAssistContext context,
        EStructuralFeature typeReference, ICompletionProposalAcceptor acceptor) {
    StyledString s = new StyledString(prop.getName() + " : {}");
    s.append(" - " + prop.getFXClass().getSimpleName(), StyledString.QUALIFIER_STYLER);
    ICompletionProposal p = createCompletionProposal(prop.getName() + " : ", s,
            IconKeys.getIcon(IconKeys.MAP_KEY), getPropertiesProposalsProposals(), context.getPrefix(),
            context);//  w  ww  .java2  s. c  om

    if (p instanceof ConfigurableCompletionProposal) {
        ConfigurableCompletionProposal cp = (ConfigurableCompletionProposal) p;
        cp.setAdditionalProposalInfo(model);
        cp.setHover(new HoverImpl(prop.getJavaElement()));
    }

    acceptor.accept(p);
}

From source file:at.bestsolution.efxclipse.tooling.fxgraph.ui.contentassist.FXGraphProposalProvider.java

License:Open Source License

private void createEnumPropnameProposals(IFXEnumProperty prop, EObject model, ContentAssistContext context,
        EStructuralFeature typeReference, ICompletionProposalAcceptor acceptor) {
    if (prop.isStatic() && typeReference.equals(FXGraphPackage.Literals.ELEMENT__STATIC_PROPERTIES)) {
        StyledString s = new StyledString();
        s.append("(static) ", StyledString.COUNTER_STYLER);
        s.append(prop.getFXClass().getSimpleName() + "." + prop.getName() + " : "
                + prop.getEnumTypeAsString(false));
        s.append(" - " + prop.getFXClass().getSimpleName(), StyledString.QUALIFIER_STYLER);

        context = context.copy().setMatcher(new StaticPrefixMatcher(context.getMatcher())).toContext();

        ICompletionProposal p = createCompletionProposal("static " + prop.getName() + " : ", s,
                IconKeys.getIcon(IconKeys.FIELD_KEY), getPropertiesProposalsProposals() - 10,
                context.getPrefix(), context);

        if (p instanceof ConfigurableCompletionProposal) {
            ConfigurableCompletionProposal cp = (ConfigurableCompletionProposal) p;
            cp.setAdditionalProposalInfo(model);
            cp.setHover(new HoverImpl(prop.getJavaElement()));
        }/*from  w ww . j  a  v  a2 s  .  c om*/

        acceptor.accept(p);
    } else {
        StyledString s = new StyledString(prop.getName() + " : " + prop.getEnumTypeAsString(false));
        s.append(" - " + prop.getFXClass().getSimpleName(), StyledString.QUALIFIER_STYLER);
        ICompletionProposal p = createCompletionProposal(prop.getName() + " : ", s,
                IconKeys.getIcon(IconKeys.FIELD_KEY), getPropertiesProposalsProposals(), context.getPrefix(),
                context);

        if (p instanceof ConfigurableCompletionProposal) {
            ConfigurableCompletionProposal cp = (ConfigurableCompletionProposal) p;
            cp.setAdditionalProposalInfo(model);
            cp.setHover(new HoverImpl(prop.getJavaElement()));
        }

        acceptor.accept(p);
    }
}

From source file:at.bestsolution.efxclipse.tooling.fxgraph.ui.contentassist.FXGraphProposalProvider.java

License:Open Source License

private void createEventHandlerPropnameProposals(IFXEventHandlerProperty prop, EObject model,
        ContentAssistContext context, EStructuralFeature typeReference, ICompletionProposalAcceptor acceptor) {
    StyledString s = new StyledString(prop.getName() + " : " + prop.getEventTypeAsString(false));
    s.append(" - " + prop.getFXClass().getSimpleName(), StyledString.QUALIFIER_STYLER);
    ICompletionProposal p = createCompletionProposal(prop.getName() + " : ", s,
            IconKeys.getIcon(IconKeys.EVENT_KEY), getPropertiesProposalsProposals(), context.getPrefix(),
            context);//from   ww  w  . j  a v  a  2 s . co m

    if (p instanceof ConfigurableCompletionProposal) {
        ConfigurableCompletionProposal cp = (ConfigurableCompletionProposal) p;
        cp.setAdditionalProposalInfo(model);
        cp.setHover(new HoverImpl(prop.getJavaElement()));
    }

    acceptor.accept(p);
}

From source file:at.bestsolution.efxclipse.tooling.fxgraph.ui.contentassist.FXGraphProposalProvider.java

License:Open Source License

private void createObjectPropnameProposals(IFXObjectProperty prop, EObject model, ContentAssistContext context,
        EStructuralFeature typeReference, ICompletionProposalAcceptor acceptor) {
    if (prop.isStatic() && typeReference.equals(FXGraphPackage.Literals.ELEMENT__STATIC_PROPERTIES)) {
        StyledString s = new StyledString();
        s.append("(static) ", StyledString.COUNTER_STYLER);
        s.append(prop.getFXClass().getSimpleName() + "." + prop.getName() + " : "
                + prop.getElementTypeAsString(false));
        s.append(" - " + prop.getFXClass().getSimpleName(), StyledString.QUALIFIER_STYLER);

        context = context.copy().setMatcher(new StaticPrefixMatcher(context.getMatcher())).toContext();

        ICompletionProposal p = createCompletionProposal("static " + prop.getName() + " : ", s,
                IconKeys.getIcon(IconKeys.FIELD_KEY), getPropertiesProposalsProposals() - 10,
                context.getPrefix(), context);

        if (p instanceof ConfigurableCompletionProposal) {
            ConfigurableCompletionProposal cp = (ConfigurableCompletionProposal) p;
            cp.setAdditionalProposalInfo(model);
            cp.setHover(new HoverImpl(prop.getJavaElement()));
        }// w ww  . j a v  a 2 s  .c  o  m

        acceptor.accept(p);
    } else {
        StyledString s = new StyledString(prop.getName() + " : " + prop.getElementTypeAsString(false));
        s.append(" - " + prop.getFXClass().getSimpleName(), StyledString.QUALIFIER_STYLER);
        ICompletionProposal p = createCompletionProposal(prop.getName() + " : ", s,
                IconKeys.getIcon(IconKeys.FIELD_KEY), getPropertiesProposalsProposals(), context.getPrefix(),
                context);

        if (p instanceof ConfigurableCompletionProposal) {
            ConfigurableCompletionProposal cp = (ConfigurableCompletionProposal) p;
            cp.setAdditionalProposalInfo(model);
            cp.setHover(new HoverImpl(prop.getJavaElement()));
        }

        acceptor.accept(p);
    }
}

From source file:at.bestsolution.efxclipse.tooling.fxgraph.ui.contentassist.FXGraphProposalProvider.java

License:Open Source License

private void createPrimitivePropnameProposals(IFXPrimitiveProperty prop, EObject model,
        ContentAssistContext context, EStructuralFeature typeReference, ICompletionProposalAcceptor acceptor) {
    String typeName;//from  w  w w. j  a  va 2s .c om
    String proposalValue = prop.getName() + " : ";
    switch (prop.getType()) {
    case BOOLEAN:
        typeName = "boolean";
        break;
    case BYTE:
        typeName = "byte";
        break;
    case CHAR:
        typeName = "char";
        break;
    case DOUBLE:
        typeName = "double";
        break;
    case FLOAT:
        typeName = "float";
        break;
    case INTEGER:
        typeName = "integer";
        break;
    case LONG:
        typeName = "long";
        break;
    case SHORT:
        typeName = "short";
        break;
    default:
        typeName = "String";
        proposalValue += "\"\"";
        break;
    }

    if (prop.isStatic() && typeReference.equals(FXGraphPackage.Literals.ELEMENT__STATIC_PROPERTIES)) {
        StyledString s = new StyledString();
        s.append("(static) ", StyledString.COUNTER_STYLER);
        s.append(prop.getFXClass().getSimpleName() + "." + prop.getName() + " : " + typeName);
        s.append(" - " + prop.getFXClass().getSimpleName(), StyledString.QUALIFIER_STYLER);

        proposalValue = "static " + proposalValue;

        context = context.copy().setMatcher(new StaticPrefixMatcher(context.getMatcher())).toContext();

        ICompletionProposal p = createCompletionProposal(proposalValue, s, IconKeys.getIcon(IconKeys.FIELD_KEY),
                getPropertiesProposalsProposals() - 10, context.getPrefix(), context);

        if (p instanceof ConfigurableCompletionProposal) {
            ConfigurableCompletionProposal cp = (ConfigurableCompletionProposal) p;
            cp.setAdditionalProposalInfo(model);
            cp.setHover(new HoverImpl(prop.getJavaElement()));
        }

        acceptor.accept(p);
    } else {
        StyledString s = new StyledString(prop.getName() + " : " + typeName);
        s.append(" - " + prop.getFXClass().getSimpleName(), StyledString.QUALIFIER_STYLER);

        if (proposalValue.equals("id : \"\"")) {
            proposalValue = "^" + proposalValue;
        }

        context = context.copy().setMatcher(new EscapePrefixMatcher(context.getMatcher())).toContext();
        ICompletionProposal p = createCompletionProposal(proposalValue, s, IconKeys.getIcon(IconKeys.FIELD_KEY),
                getPropertiesProposalsProposals(), context.getPrefix(), context);

        if (p instanceof ConfigurableCompletionProposal) {
            ConfigurableCompletionProposal cp = (ConfigurableCompletionProposal) p;
            cp.setAdditionalProposalInfo(model);
            cp.setHover(new HoverImpl(prop.getJavaElement()));
            if (prop.getType() == Type.STRING) {
                cp.setCursorPosition(cp.getCursorPosition() - 1);
            }
        }

        acceptor.accept(p);
    }
}

From source file:at.bestsolution.efxclipse.tooling.fxgraph.ui.contentassist.FXGraphProposalProvider.java

License:Open Source License

@Override
public void completeResourceValueProperty_Value(EObject model, Assignment assignment,
        ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
    if (!model.eResource().getContents().isEmpty()) {
        Model m = (Model) model.eResource().getContents().get(0);
        if (m.getComponentDef() != null) {
            if (m.getComponentDef().getPreviewResourceBundle() != null) {
                File f = RelativeFileLocator.locateFile(model.eResource().getURI(),
                        m.getComponentDef().getPreviewResourceBundle());
                Properties p = null;
                if (f != null) {
                    FileInputStream fi = null;
                    try {
                        fi = new FileInputStream(f);
                        p = new Properties();
                        p.load(fi);//from w  w w . j av  a2  s .c  o m
                    } catch (FileNotFoundException e) {
                        LOGGER.warn("Unable to load resource bundle", e);
                    } catch (IOException e) {
                        LOGGER.warn("Unable to load resource bundle", e);
                    } finally {
                        if (fi != null) {
                            try {
                                fi.close();
                            } catch (IOException e) {
                                LOGGER.error("Unable to close resource filehandle", e);
                            }
                        }
                    }
                }
                if (p != null) {
                    for (String k : p.stringPropertyNames()) {
                        StyledString s = new StyledString(k);
                        s.append(" - " + p.getProperty(k), StyledString.DECORATIONS_STYLER);
                        acceptor.accept(createCompletionProposal("\"" + k + "\"", s,
                                IconKeys.getIcon(IconKeys.EXTERNALIZED_STRING_KEY), context));
                    }
                }
            }
        }
    }
}

From source file:at.bestsolution.efxclipse.tooling.fxgraph.ui.contentassist.FXGraphProposalProvider.java

License:Open Source License

@Override
public void completeBindValueProperty_ElementReference(EObject model, Assignment assignment,
        ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
    TreeIterator<EObject> it = model.eResource().getAllContents();
    while (it.hasNext()) {
        EObject o = it.next();//  www.  j  a va 2 s .c  om
        if (o instanceof Element) {
            Element e = (Element) o;
            if (e.getName() != null && e.getName().trim().length() > 0) {
                StyledString s = new StyledString(e.getName());
                s.append(" - " + e.getType().getQualifiedName(), StyledString.DECORATIONS_STYLER);
                acceptor.accept(createCompletionProposal(e.getName(), s, IconKeys.getIcon(IconKeys.CLASS_KEY),
                        context));
            }
        }
    }
}

From source file:at.bestsolution.efxclipse.tooling.fxgraph.ui.contentassist.FXGraphProposalProvider.java

License:Open Source License

@Override
public void completeBindValueProperty_Attribute(EObject model, Assignment assignment,
        ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
    BindValueProperty b = (BindValueProperty) model;
    if (b.getElementReference() != null && b.getElementReference().getType() != null) {
        Property property = (Property) b.eContainer();
        Element targetClass = (Element) property.eContainer();
        Element element = b.getElementReference();

        try {//  w  ww.  ja va 2  s .c  om
            IJavaProject javaProject = projectProvider.getJavaProject(element.eResource().getResourceSet());
            IType sourceType = javaProject.findType(element.getType().getQualifiedName());
            IType targetType = javaProject.findType(targetClass.getType().getQualifiedName());

            IFXClass fxSourceClazz = FXPlugin.getClassmodel().findClass(javaProject, sourceType);
            IFXClass fxTargetClass = FXPlugin.getClassmodel().findClass(javaProject, targetType);
            IFXProperty targetProperty = fxTargetClass.getProperty(property.getName());

            if (targetProperty instanceof IFXPrimitiveProperty) {
                IFXPrimitiveProperty pp = (IFXPrimitiveProperty) targetProperty;
                for (IFXProperty sourceProp : fxSourceClazz.getAllProperties().values()) {
                    if (sourceProp instanceof IFXEventHandlerProperty) {
                        continue;
                    }

                    boolean select = false;
                    if (pp.getType() == Type.STRING) {
                        select = true;
                    } else {
                        if (sourceProp instanceof IFXPrimitiveProperty) {
                            IFXPrimitiveProperty sp = (IFXPrimitiveProperty) sourceProp;
                            if (pp.getType() == Type.BOOLEAN) {
                                select = sp.getType() == Type.BOOLEAN;
                            } else if (sp.getType() != Type.STRING && sp.getType() != Type.BOOLEAN) {
                                select = true;
                            }
                        }
                    }

                    if (select) {
                        String typeName = "";
                        if (sourceProp instanceof IFXPrimitiveProperty) {
                            IFXPrimitiveProperty sp = (IFXPrimitiveProperty) sourceProp;
                            if (sp.getType() == Type.STRING) {
                                typeName = "String";
                            } else {
                                typeName = sp.getType().jvmType();
                            }
                        } else if (sourceProp instanceof IFXCollectionProperty) {
                            typeName = ((IFXCollectionProperty) sourceProp).getCollectionAsString();
                        } else if (sourceProp instanceof IFXEnumProperty) {
                            typeName = ((IFXEnumProperty) sourceProp).getEnumTypeAsString(false);
                        } else if (sourceProp instanceof IFXMapProperty) {
                            typeName = "{}";
                        } else if (sourceProp instanceof IFXObjectProperty) {
                            typeName = ((IFXObjectProperty) sourceProp).getElementTypeAsString(false);
                        }

                        StyledString s = new StyledString(sourceProp.getName() + " : " + typeName);
                        s.append(" - " + sourceProp.getFXClass().getSimpleName(),
                                StyledString.QUALIFIER_STYLER);
                        ICompletionProposal cp = createCompletionProposal(sourceProp.getName(), s,
                                IconKeys.getIcon(IconKeys.FIELD_KEY), getPropertiesProposalsProposals(),
                                context.getPrefix(), context);
                        acceptor.accept(cp);
                    }
                }
            }
        } catch (JavaModelException e1) {
            LOGGER.error("Unable to extract java informations", e1);
        }
    }
}