/** * Provides custom completion for a path, taking into account the path which has already been * specified * * @see * org.eclipse.papyrus.uml.textedit.property.xtext.ui.contentassist.AbstractUmlPropertyProposalProvider#completeQualifiedName_Remaining(org.eclipse.emf.ecore.EObject, * org.eclipse.xtext.Assignment, * org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext, * org.eclipse.xtext.ui.editor.contentassist.ICompletionProposalAcceptor) */ @Override public void completeQualifiedName_Remaining( EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { QualifiedName path = (QualifiedName) model; for (NamedElement n : path.getPath().getOwnedMembers()) { if (n instanceof Package) { if (n.getName().toLowerCase().contains(context.getPrefix().toLowerCase())) { String completionString = n.getName() + "::"; String displayString = n.getName() + "::"; CustomCompletionProposal completionProposal = CompletionProposalUtils.createCompletionProposalWithReplacementOfPrefix( n, completionString, displayString, context); acceptor.accept(completionProposal); } } } for (Package p : path.getPath().getImportedPackages()) { if (p.getName().toLowerCase().contains(context.getPrefix().toLowerCase())) { String completionString = p.getName() + "::"; String displayString = p.getName() + "::"; CustomCompletionProposal completionProposal = CompletionProposalUtils.createCompletionProposalWithReplacementOfPrefix( p, completionString, displayString, context); acceptor.accept(completionProposal); } } }
/** * Provides custom completion for specifying the type of a property, taking into account the path * if the name is qualified * * @see * org.eclipse.papyrus.uml.textedit.property.xtext.ui.contentassist.AbstractUmlPropertyProposalProvider#completeTypeRule_Type(org.eclipse.emf.ecore.EObject, * org.eclipse.xtext.Assignment, * org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext, * org.eclipse.xtext.ui.editor.contentassist.ICompletionProposalAcceptor) */ @Override public void completeTypeRule_Type( EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { Namespace namespace = ((Property) ContextElementUtil.getContextElement(model.eResource())).getNamespace(); if (model instanceof TypeRule) { TypeRule typeRule = (TypeRule) model; QualifiedName path = typeRule.getPath(); while (path.getRemaining() != null) { path = path.getRemaining(); } namespace = path.getPath(); } else if (!(model instanceof PortRule)) { return; } for (NamedElement n : namespace.getOwnedMembers()) { if (n instanceof Classifier) { if (n.getName().toLowerCase().contains(context.getPrefix().toLowerCase())) { String completionString = n.getName(); String displayString = n.getName(); CustomCompletionProposal completionProposal = CompletionProposalUtils.createCompletionProposalWithReplacementOfPrefix( n, completionString, displayString, context); acceptor.accept(completionProposal); } } } }
@Override public void completeMobaGeneratorIDFeature_GeneratorId( final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) { super.completeMobaGeneratorIDFeature_GeneratorId(model, assignment, context, acceptor); final String prefix = context.getPrefix(); final Map<String, ExtensionGeneratorDelegate.Metadata> allGenerators = this.generatorDelegate.readExtentionsMetadataById(this.grammarName, prefix); Collection<ExtensionGeneratorDelegate.Metadata> _values = allGenerators.values(); final Consumer<ExtensionGeneratorDelegate.Metadata> _function = (ExtensionGeneratorDelegate.Metadata it) -> { StringConcatenation _builder = new StringConcatenation(); String _id = it.getId(); String _version = it.getVersion(); String _versionedIdWithWhitespace = MobaUtil.toVersionedIdWithWhitespace(_id, _version); _builder.append(_versionedIdWithWhitespace, ""); StyledString _createStyledString = this.createStyledString(it); Image _image = this.getImage(model); ConfigurableCompletionProposal _doCreateProposal = this.doCreateProposal( _builder.toString(), _createStyledString, _image, 1000, context); acceptor.accept(_doCreateProposal); }; _values.forEach(_function); }
@Override public void complete_ValidCommand( EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { super.complete_ValidState(model, ruleCall, context, acceptor); for (Command command : stateAndCommandProvider.getAllCommands()) { if (command.toString().startsWith(context.getPrefix())) { acceptor.accept(createCompletionProposal(command.toString(), context)); } } }
@Override public void complete_MultiplicityRule( EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { String zero_one = "[0..1]"; String one = "[1]"; String one_star = "[1..*]"; String star = "[*]"; String completionString = ""; String displayString = ""; ICompletionProposal completionProposal = null; completionString = "" + zero_one.substring(context.getPrefix().length()); displayString = "" + zero_one; completionProposal = CompletionProposalUtils.createCompletionProposal(completionString, displayString, context); acceptor.accept(completionProposal); completionString = "" + one.substring(context.getPrefix().length()); displayString = "" + one; completionProposal = CompletionProposalUtils.createCompletionProposal(completionString, displayString, context); acceptor.accept(completionProposal); completionString = "" + one_star.substring(context.getPrefix().length()); displayString = "" + one_star + " "; completionProposal = CompletionProposalUtils.createCompletionProposal(completionString, displayString, context); acceptor.accept(completionProposal); completionString = "" + star.substring(context.getPrefix().length()); displayString = "" + star; completionProposal = CompletionProposalUtils.createCompletionProposal(completionString, displayString, context); acceptor.accept(completionProposal); }
protected void createProposal( EObject model, ContentAssistContext context, ICompletionProposalAcceptor acceptor, Tag tag) { String prefix = context.getPrefix(); if (prefix.trim().startsWith("-") && !prefix.contains("@" + tag.getName())) { acceptor.accept( createCompletionProposal( prefix + tag, getStyledDisplayString(model, tag.getName(), tag.getName()), getLabelProvider().getImage(tag), 0, "", context)); } }
@Override public void complete_ItemName( EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { super.complete_ItemName(model, ruleCall, context, acceptor); ItemRegistry itemRegistry = RuleModelUIActivator.itemRegistryTracker.getService(); for (Item item : itemRegistry.getItems()) { if (item.getName().startsWith(context.getPrefix())) { acceptor.accept(createCompletionProposal(item.getName(), context)); } } }
@Override public void completeSubsetsRule_Port( EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { for (Property inherited : UmlPortScopeProvider.retrieveInheritedProperties(model)) { if (inherited.getName().toLowerCase().contains(context.getPrefix().toLowerCase())) { String completionString = inherited.getName(); String displayString = PropertyUtil.getLabel(inherited); CustomCompletionProposal completionProposal = CompletionProposalUtils.createCompletionProposalWithReplacementOfPrefix( inherited, completionString, displayString, context); acceptor.accept(completionProposal); } } }
/** * Provides custom completion for the root element in a qualified name * * @see * org.eclipse.papyrus.uml.textedit.property.xtext.ui.contentassist.AbstractUmlPropertyProposalProvider#completeTypeRule_Path(org.eclipse.emf.ecore.EObject, * org.eclipse.xtext.Assignment, * org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext, * org.eclipse.xtext.ui.editor.contentassist.ICompletionProposalAcceptor) */ @Override public void completeTypeRule_Path( EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { Namespace root = (Namespace) EcoreUtil.getRootContainer(ContextElementUtil.getContextElement(model.eResource())); if (root == null) { return; } // first accept the root Model String completionString = root.getName() + "::"; String displayString = root.getName() + "::"; // String displayString = c.getName() ; CustomCompletionProposal completionProposal = CompletionProposalUtils.createCompletionProposalWithReplacementOfPrefix( root, completionString, displayString, context); acceptor.accept(completionProposal); // then accepts all packages imported by Model List<Package> importedPackages = root.getImportedPackages(); for (Package p : importedPackages) { if (p.getName().toLowerCase().contains(context.getPrefix().toLowerCase())) { completionString = p.getName() + "::"; displayString = p.getName() + "::"; // String displayString = c.getName() ; completionProposal = CompletionProposalUtils.createCompletionProposalWithReplacementOfPrefix( root, completionString, displayString, context); acceptor.accept(completionProposal); } } }
/** * Provides custom completion for the specifying the type of a property * * @see * org.eclipse.papyrus.uml.textedit.property.xtext.ui.contentassist.AbstractUmlPropertyProposalProvider#completePropertyRule_Type(org.eclipse.emf.ecore.EObject, * org.eclipse.xtext.Assignment, * org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext, * org.eclipse.xtext.ui.editor.contentassist.ICompletionProposalAcceptor) */ @Override public void completePortRule_Type( EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) { List<Classifier> allClassifiers = new ArrayList<Classifier>(); Namespace namespace = (Namespace) EcoreUtil.getRootContainer(ContextElementUtil.getContextElement(model.eResource())); allClassifiers.addAll(getRecursivelyOwnedClassifiers(namespace)); allClassifiers.addAll(getRecursivelyImportedClassifiers(namespace)); for (Classifier c : allClassifiers) { if (c.getQualifiedName().toLowerCase().contains(context.getPrefix().toLowerCase())) { String displayString = c.getQualifiedName(); String completionString = CompletionProposalUtils.getQualifiedNameLabelWithSufficientDepth(c, namespace); ICompletionProposal completionProposal = CompletionProposalUtils.createCompletionProposalWithReplacementOfPrefix( c, completionString, displayString, context); acceptor.accept(completionProposal); } } }
@Override public void completeMobaGeneratorIDFeature_GeneratorVersion( final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) { super.completeMobaGeneratorIDFeature_GeneratorId(model, assignment, context, acceptor); final String prefix = context.getPrefix(); final MobaGeneratorIDFeature feature = ((MobaGeneratorIDFeature) model); String _id = feature.getId(); final Map<String, ExtensionGeneratorDelegate.Metadata> allGenerators = this.generatorDelegate.readExtentionsMetadataByVersion(this.grammarName, _id, prefix); Collection<ExtensionGeneratorDelegate.Metadata> _values = allGenerators.values(); final Consumer<ExtensionGeneratorDelegate.Metadata> _function = (ExtensionGeneratorDelegate.Metadata it) -> { String _version = it.getVersion(); StyledString _createStyledStringForVersion = this.createStyledStringForVersion(it); Image _image = this.getImage(model); ConfigurableCompletionProposal _doCreateProposal = this.doCreateProposal(_version, _createStyledStringForVersion, _image, 1000, context); acceptor.accept(_doCreateProposal); }; _values.forEach(_function); }