diff options
author | Christoph Caks | 2016-03-10 08:57:56 +0000 |
---|---|---|
committer | Christoph Caks | 2016-03-10 09:44:12 +0000 |
commit | aa56ee40c558e422a5986d0434e26dd8870730fe (patch) | |
tree | 0ac7ee03b8105b08f500d039234c4fc5bd447060 /bundles/code/org.eclipse.fx.text/src/org/eclipse/fx | |
parent | 044a9f733b73ce65c5a088bea8de2eafa3076d04 (diff) | |
download | org.eclipse.efxclipse-aa56ee40c558e422a5986d0434e26dd8870730fe.tar.gz org.eclipse.efxclipse-aa56ee40c558e422a5986d0434e26dd8870730fe.tar.xz org.eclipse.efxclipse-aa56ee40c558e422a5986d0434e26dd8870730fe.zip |
Bug 486094 - [sponsored] StyledTextArea implement Hover Support
fixed hover support
Diffstat (limited to 'bundles/code/org.eclipse.fx.text/src/org/eclipse/fx')
5 files changed, 105 insertions, 0 deletions
diff --git a/bundles/code/org.eclipse.fx.text/src/org/eclipse/fx/text/hover/AnnotationHoverProvider.java b/bundles/code/org.eclipse.fx.text/src/org/eclipse/fx/text/hover/AnnotationHoverProvider.java new file mode 100644 index 000000000..6267fb675 --- /dev/null +++ b/bundles/code/org.eclipse.fx.text/src/org/eclipse/fx/text/hover/AnnotationHoverProvider.java @@ -0,0 +1,8 @@ +package org.eclipse.fx.text.hover; + +import org.eclipse.jface.text.source.Annotation; + +public interface AnnotationHoverProvider { + boolean isApplicable(Class<? extends Annotation> annotationType); + HoverInfo getHoverInfo(Annotation annotation); +} diff --git a/bundles/code/org.eclipse.fx.text/src/org/eclipse/fx/text/hover/DefaultHoverInfoType.java b/bundles/code/org.eclipse.fx.text/src/org/eclipse/fx/text/hover/DefaultHoverInfoType.java new file mode 100644 index 000000000..b682f050c --- /dev/null +++ b/bundles/code/org.eclipse.fx.text/src/org/eclipse/fx/text/hover/DefaultHoverInfoType.java @@ -0,0 +1,14 @@ +package org.eclipse.fx.text.hover; + +public enum DefaultHoverInfoType implements HoverInfoType { + DOCUMENTATION, + ERROR, + WARNING, + INFO; + + @Override + public String getType() { + return name(); + } + +} diff --git a/bundles/code/org.eclipse.fx.text/src/org/eclipse/fx/text/hover/DocumentHoverProvider.java b/bundles/code/org.eclipse.fx.text/src/org/eclipse/fx/text/hover/DocumentHoverProvider.java new file mode 100644 index 000000000..668adc8a5 --- /dev/null +++ b/bundles/code/org.eclipse.fx.text/src/org/eclipse/fx/text/hover/DocumentHoverProvider.java @@ -0,0 +1,9 @@ +package org.eclipse.fx.text.hover; + +import java.util.Set; + +import org.eclipse.jface.text.IDocument; + +public interface DocumentHoverProvider { + Set<HoverInfo> getHoverInfo(IDocument document, int offset); +} diff --git a/bundles/code/org.eclipse.fx.text/src/org/eclipse/fx/text/hover/HoverInfo.java b/bundles/code/org.eclipse.fx.text/src/org/eclipse/fx/text/hover/HoverInfo.java new file mode 100644 index 000000000..1caeb9724 --- /dev/null +++ b/bundles/code/org.eclipse.fx.text/src/org/eclipse/fx/text/hover/HoverInfo.java @@ -0,0 +1,69 @@ +package org.eclipse.fx.text.hover; + +import org.eclipse.jface.text.IRegion; + +public class HoverInfo { + + private final HoverInfoType type; + private final IRegion region; + private final String hoverText; + private final Object hoverModel; + + public HoverInfo(HoverInfoType type, IRegion region, String hoverText, Object hoverModel) { + this.type = type; + this.region = region; + this.hoverText = hoverText; + this.hoverModel = hoverModel; + } + + public HoverInfoType getType() { + return type; + } + + public IRegion getRegion() { + return region; + } + + public String getHoverText() { + return hoverText; + } + + public Object getHoverModel() { + return hoverModel; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((hoverText == null) ? 0 : hoverText.hashCode()); + result = prime * result + ((region == null) ? 0 : region.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + HoverInfo other = (HoverInfo) obj; + if (hoverText == null) { + if (other.hoverText != null) + return false; + } else if (!hoverText.equals(other.hoverText)) + return false; + if (region == null) { + if (other.region != null) + return false; + } else if (!region.equals(other.region)) + return false; + return true; + } + + + + +} diff --git a/bundles/code/org.eclipse.fx.text/src/org/eclipse/fx/text/hover/HoverInfoType.java b/bundles/code/org.eclipse.fx.text/src/org/eclipse/fx/text/hover/HoverInfoType.java new file mode 100644 index 000000000..e0a6b0ca8 --- /dev/null +++ b/bundles/code/org.eclipse.fx.text/src/org/eclipse/fx/text/hover/HoverInfoType.java @@ -0,0 +1,5 @@ +package org.eclipse.fx.text.hover; + +public interface HoverInfoType { + String getType(); +} |