Commit 6c1d6e31 authored by Philip Makedonski's avatar Philip Makedonski
Browse files

+ content assist refinements for target gate and time constraint (predefined function call pending)

parent add4256b
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -26,8 +26,9 @@ Require-Bundle: org.etsi.mts.tdl.tx,
 org.etsi.mts.tdl.openapi2tdl.next
Import-Package: org.apache.log4j
Bundle-RequiredExecutionEnvironment: JavaSE-11
Export-Package: org.etsi.mts.tdl.ui.contentassist,
Export-Package: org.etsi.mts.tdl.tx.ui.internal,
 org.etsi.mts.tdl.ui.contentassist,
 org.etsi.mts.tdl.ui.outline,
 org.etsi.mts.tdl.ui.quickfix,
 org.etsi.mts.tdl.tx.ui.internal,
 org.etsi.mts.tdl.ui.wizard
Bundle-Activator: org.etsi.mts.tdl.tx.ui.internal.TxActivator
+56 −0
Original line number Diff line number Diff line
@@ -3,12 +3,16 @@
 */
package org.etsi.mts.tdl.ui.contentassist;

import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.Assignment;
import org.eclipse.xtext.RuleCall;
import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext;
import org.eclipse.xtext.ui.editor.contentassist.ICompletionProposalAcceptor;
import org.etsi.mts.tdl.Connection;
import org.etsi.mts.tdl.Member;
import org.etsi.mts.tdl.Message;
import org.etsi.mts.tdl.Target;
import org.etsi.mts.tdl.StructuredDataInstance;
import org.etsi.mts.tdl.StructuredDataType;

@@ -40,4 +44,56 @@ public class TDLtxProposalProvider extends AbstractTDLtxProposalProvider {
		super.complete_FunctionCall(model, ruleCall, context, acceptor);
	}
	
	@Override
	public void completePredefinedFunctionCallBinary_Function(EObject model, Assignment assignment,
			ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
		// TODO: handle here or in scope provider - exclude incorrect proposals 
		super.completePredefinedFunctionCallBinary_Function(model, assignment, context, acceptor);
	}

	@Override
	public void completePredefinedFunctionCallBinary_ActualParameters(EObject model, Assignment assignment,
			ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
		// TODO: refine?
		super.completePredefinedFunctionCallBinary_ActualParameters(model, assignment, context, acceptor);
	}
	
	@Override
	public void complete_PredefinedFunctionCallBinary(EObject model, RuleCall ruleCall, ContentAssistContext context,
			ICompletionProposalAcceptor acceptor) {
		// TODO: refine?
		super.complete_PredefinedFunctionCallBinary(model, ruleCall, context, acceptor);
	}
	
	@Override
	public void complete_TargetMessage(EObject model, RuleCall ruleCall, ContentAssistContext context,
			ICompletionProposalAcceptor acceptor) {
		super.complete_TargetMessage(model, ruleCall, context, acceptor);
	}
	
	@Override
	public void completeMessage_Target(EObject model, Assignment assignment, ContentAssistContext context,
			ICompletionProposalAcceptor acceptor) {
		super.completeMessage_Target(model, assignment, context, acceptor);
	}
	
	@Override
	public void completeTargetMessage_TargetGate(EObject model, Assignment assignment, ContentAssistContext context,
			ICompletionProposalAcceptor acceptor) {
		super.completeTargetMessage_TargetGate(model, assignment, context, acceptor);
		EList<Connection> connection = ((Message) model).getParentTestDescription().getTestConfiguration().getConnection();
		for (Connection c : connection) {
			//TODO: simplify, filter? move upstream?, also for procedure target?
			acceptor.accept(createCompletionProposal(c.getEndPoint().get(0).getComponent().getName()+"::"+c.getEndPoint().get(0).getGate().getName(), context));
			acceptor.accept(createCompletionProposal(c.getEndPoint().get(1).getComponent().getName()+"::"+c.getEndPoint().get(1).getGate().getName(), context));
		}
	}
	
	@Override
	public void complete_TimeConstraintFragment(EObject model, RuleCall ruleCall, ContentAssistContext context,
			ICompletionProposalAcceptor acceptor) {
		acceptor.accept(createCompletionProposal("{  }",context));
		super.complete_TimeConstraintFragment(model, ruleCall, context, acceptor);
	}
	
}