Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristoph Caks2016-03-10 08:57:56 +0000
committerChristoph Caks2016-03-10 09:44:12 +0000
commitaa56ee40c558e422a5986d0434e26dd8870730fe (patch)
tree0ac7ee03b8105b08f500d039234c4fc5bd447060 /bundles/code/org.eclipse.fx.text/src/org/eclipse/fx
parent044a9f733b73ce65c5a088bea8de2eafa3076d04 (diff)
downloadorg.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')
-rw-r--r--bundles/code/org.eclipse.fx.text/src/org/eclipse/fx/text/hover/AnnotationHoverProvider.java8
-rw-r--r--bundles/code/org.eclipse.fx.text/src/org/eclipse/fx/text/hover/DefaultHoverInfoType.java14
-rw-r--r--bundles/code/org.eclipse.fx.text/src/org/eclipse/fx/text/hover/DocumentHoverProvider.java9
-rw-r--r--bundles/code/org.eclipse.fx.text/src/org/eclipse/fx/text/hover/HoverInfo.java69
-rw-r--r--bundles/code/org.eclipse.fx.text/src/org/eclipse/fx/text/hover/HoverInfoType.java5
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();
+}

Back to the top