diff --git a/org.eclipse.titan.designer/src/org/eclipse/titan/designer/AST/TTCN3/types/Class_Type.java b/org.eclipse.titan.designer/src/org/eclipse/titan/designer/AST/TTCN3/types/Class_Type.java index 20a006cf316028920174b4897c03bbf430da031b..5449f286ced985ca2c5dfeb9062cb0cfe1615315 100755 --- a/org.eclipse.titan.designer/src/org/eclipse/titan/designer/AST/TTCN3/types/Class_Type.java +++ b/org.eclipse.titan.designer/src/org/eclipse/titan/designer/AST/TTCN3/types/Class_Type.java @@ -116,6 +116,11 @@ public final class Class_Type extends Type implements ITypeWithComponents { return "class.gif"; } + @Override + public String getTypename() { + return "class"; + } + @Override public Identifier getComponentIdentifierByName(Identifier identifier) { // TODO Auto-generated method stub @@ -136,11 +141,6 @@ public final class Class_Type extends Type implements ITypeWithComponents { return true; } - @Override - public String getTypename() { - // TODO Auto-generated method stub - return null; - } @Override public boolean generatesOwnClass(JavaGenData aData, StringBuilder source) { diff --git a/org.eclipse.titan.designer/src/org/eclipse/titan/designer/editors/Stylers.java b/org.eclipse.titan.designer/src/org/eclipse/titan/designer/editors/Stylers.java index 2a36633ff67dea468e54c2a66367bd71b4c14354..d64102c8174bead78da9da37bbcb5e9c3bb88ea5 100755 --- a/org.eclipse.titan.designer/src/org/eclipse/titan/designer/editors/Stylers.java +++ b/org.eclipse.titan.designer/src/org/eclipse/titan/designer/editors/Stylers.java @@ -27,6 +27,10 @@ import org.eclipse.swt.widgets.Display; public class Stylers { private Stylers() { } + public static final Color PublicColor = new Color(Display.getCurrent(), 59, 179, 0); + public static final Color ProtectedColor = new Color(Display.getCurrent(), 255, 140, 25); + public static final Color PrivateColor = new Color(Display.getCurrent(), 227,38,54); + public static class BlueBoldStyler extends Styler { @Override public void applyStyles(TextStyle textStyle) { @@ -48,4 +52,26 @@ public class Stylers { textStyle.font = f; } } + + public static class ColoredStyler extends Styler { + private final Color color; + private int style; + + public ColoredStyler(Color color) { + this.color = color; + } + + public void setStyle(int style) { + this.style = style; + } + + @Override + public void applyStyles(TextStyle textStyle) { + textStyle.foreground = color; + FontData fontData = JFaceResources.getDefaultFont().getFontData()[0]; + fontData.setStyle(style); + Font f = new Font(Display.getDefault(), fontData); + textStyle.font = f; + } + } } diff --git a/org.eclipse.titan.designer/src/org/eclipse/titan/designer/editors/ttcn3editor/ContentAssistProcessor.java b/org.eclipse.titan.designer/src/org/eclipse/titan/designer/editors/ttcn3editor/ContentAssistProcessor.java index af0cfdfaa5932c90793ce47ae6ad658f499c2bb8..11850ec0c767a34bdef0d61f51924b771086ecdd 100644 --- a/org.eclipse.titan.designer/src/org/eclipse/titan/designer/editors/ttcn3editor/ContentAssistProcessor.java +++ b/org.eclipse.titan.designer/src/org/eclipse/titan/designer/editors/ttcn3editor/ContentAssistProcessor.java @@ -23,6 +23,9 @@ import org.eclipse.jface.text.contentassist.IContextInformationValidator; import org.eclipse.jface.text.templates.Template; import org.eclipse.jface.text.templates.TemplateContextType; import org.eclipse.jface.viewers.StyledString; +import org.eclipse.swt.SWT; +import org.eclipse.swt.graphics.Color; +import org.eclipse.swt.widgets.Display; import org.eclipse.titan.designer.Activator; import org.eclipse.titan.designer.AST.Assignment; import org.eclipse.titan.designer.AST.IType; @@ -39,11 +42,14 @@ import org.eclipse.titan.designer.AST.TTCN3.definitions.Timer; import org.eclipse.titan.designer.AST.TTCN3.statements.StatementBlock; import org.eclipse.titan.designer.AST.TTCN3.types.Class_Type; import org.eclipse.titan.designer.AST.TTCN3.types.Component_Type; +import org.eclipse.titan.designer.AST.TTCN3.types.Function_Type; import org.eclipse.titan.designer.AST.TTCN3.types.PortTypeBody; import org.eclipse.titan.designer.consoles.TITANDebugConsole; import org.eclipse.titan.designer.editors.ProposalCollector; import org.eclipse.titan.designer.editors.StyledCompletionProposal; +import org.eclipse.titan.designer.editors.Stylers; import org.eclipse.titan.designer.graphics.ImageCache; +import org.eclipse.titan.designer.parsers.CompilationTimeStamp; import org.eclipse.titan.designer.parsers.GlobalParser; import org.eclipse.titan.designer.parsers.ProjectSourceParser; import org.eclipse.titan.designer.preferences.PreferenceConstantValues; @@ -129,32 +135,41 @@ public final class ContentAssistProcessor implements IContentAssistProcessor { if (classRef != null && scope != null) { classRef.setMyScope(scope); classRef.detectModid(); - //Scope fscope = scope.getAssignmentsScope(); - Assignment assignment = scope.getAssBySRef(tempModule.getLastCompilationTimeStamp(), classRef); + final CompilationTimeStamp timestamp = tempModule.getLastCompilationTimeStamp(); + Assignment assignment = scope.getAssBySRef(timestamp, classRef); if (assignment instanceof Def_Var) { - IType type = assignment.getType(tempModule.getLastCompilationTimeStamp()); + IType type = assignment.getType(timestamp); if (type != null ) { - IType refd = type.getTypeRefdLast(tempModule.getLastCompilationTimeStamp()); + IType refd = type.getTypeRefdLast(timestamp); if (refd instanceof Class_Type) { Class_Type ct = (Class_Type)refd; for (Map.Entry<String, Definition> entry : ct.getClassBody().getDefinitionMap().entrySet()) { final Definition d = entry.getValue(); final String memberName = d.getIdentifier().getDisplayName(); + if (d instanceof Def_Function) { + memberName.concat("()"); + } + final IType memberType = d.getType(timestamp); + final String memberTypeName = memberType != null ? memberType.getTypename() : ""; String visibility; + Stylers.ColoredStyler styler = null; switch (d.getVisibilityModifier()) { case Private: + styler = new Stylers.ColoredStyler(Stylers.PrivateColor); visibility = "private"; break; case Public: visibility = "public"; + styler = new Stylers.ColoredStyler(Stylers.PublicColor); break; default: visibility = "protected"; + styler = new Stylers.ColoredStyler(Stylers.ProtectedColor); } - //final String propText = memberName + " (" + visibility + ")"; + final String context = "<i>" + visibility + "</i> <b>" + memberTypeName + "</b> " + memberName ; StyledCompletionProposal scp = new StyledCompletionProposal(memberName, offset, 0, memberName.length(), - ImageCache.getImage(d.getOutlineIcon()), memberName, null, null); - scp.append(" (" + visibility + ")", StyledString.QUALIFIER_STYLER); + ImageCache.getImage(d.getOutlineIcon()), memberName, null, context); + scp.append(" \u25fc", styler); propCollector.addProposal(scp); } propCollector.sortAll();