Skip to content

Commit 74e5c19

Browse files
committed
Show gene name above vertical line
1 parent 16d12c2 commit 74e5c19

File tree

1 file changed

+28
-4
lines changed

1 file changed

+28
-4
lines changed

src/main/java/at/gmi/nordborglab/widgets/gwasgeneviewer/client/GWASGeneViewer.java

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
package at.gmi.nordborglab.widgets.gwasgeneviewer.client;
22

33
import java.util.ArrayList;
4+
import java.util.HashMap;
45
import java.util.List;
6+
import java.util.Map;
57

68
import org.danvk.dygraphs.client.DygraphOptions;
79
import org.danvk.dygraphs.client.Dygraphs;
@@ -29,8 +31,11 @@
2931
import com.google.gwt.core.client.JsArrayMixed;
3032
import com.google.gwt.core.client.Scheduler;
3133
import com.google.gwt.core.client.Scheduler.ScheduledCommand;
34+
import com.google.gwt.dom.client.DivElement;
35+
import com.google.gwt.dom.client.Document;
3236
import com.google.gwt.dom.client.Style.Unit;
3337
import com.google.gwt.uibinder.client.UiBinder;
38+
import com.google.gwt.user.client.DOM;
3439
import com.google.gwt.user.client.Window;
3540
import com.google.gwt.user.client.ui.Composite;
3641
import com.google.gwt.user.client.ui.HTMLPanel;
@@ -91,7 +96,7 @@ public void execute() {
9196
protected DataSource datasource = null;
9297
protected int viewStart = 0;
9398
protected int viewEnd = 0;
94-
protected ArrayList<Gene> displayGenes = new ArrayList<Gene>();
99+
protected HashMap<Gene, DivElement> displayGenes = new HashMap<Gene, DivElement>();
95100

96101

97102

@@ -133,12 +138,21 @@ public String getChromosome() {
133138

134139
public void addDisplayGene(Gene gene)
135140
{
136-
if (gene.getChromosome().equals(this.chromosome))
137-
displayGenes.add(gene);
141+
if (gene.getChromosome().equals(this.chromosome)) {
142+
if (!displayGenes.containsKey(gene)) {
143+
DivElement elem = DOM.createDiv().cast();
144+
elem.setInnerHTML(gene.getName());
145+
elem.setId(gene.getName()+"_label");
146+
displayGenes.put(gene,elem);
147+
}
148+
}
138149
}
139150

140151
public void clearDisplayGenes()
141152
{
153+
for (DivElement elem: displayGenes.values()) {
154+
scatterChart.getElement().removeChild(elem);
155+
}
142156
displayGenes.clear();
143157
}
144158

@@ -266,7 +280,9 @@ public void onUnderlay(UnderlayEvent event) {
266280

267281
Canvas ctx = event.canvas;
268282
DygraphsJS dygraphjs = event.dygraph;
269-
for (Gene gene:displayGenes) {
283+
for (Map.Entry<Gene, DivElement> entry : displayGenes.entrySet()) {
284+
Gene gene = entry.getKey();
285+
DivElement geneLabel = entry.getValue();
270286
if (gene.getChromosome().equals(chromosome) && (gene.getStart() >= viewStart || gene.getEnd() <= viewEnd))
271287
{
272288
double left = dygraphjs.toDomXCoord(gene.getStart());
@@ -282,6 +298,14 @@ public void onUnderlay(UnderlayEvent event) {
282298
ctx.setStrokeStyle("#000000");
283299
ctx.fillRect(left, event.area.getY(), length, event.area.getH());
284300
ctx.restore();
301+
String color=gene_marker_color;
302+
double x = Math.round(left)+3;
303+
if (x+60 > scatterChart.getOffsetWidth())
304+
x = x - 60;
305+
int y = scatterChart.getAbsoluteTop() - scatterChart.getOffsetHeight() + 8;
306+
geneLabel.setAttribute("style", "position: absolute; font-size: 11px; z-index: 10; color: "+color+"; line-height: normal; overflow-x: hidden; overflow-y: hidden; top: "+y+"px; left: "+x+"px; text-align: right;");
307+
if (DOM.getElementById(geneLabel.getId()) == null)
308+
scatterChart.getElement().appendChild(geneLabel);
285309
}
286310
}
287311

0 commit comments

Comments
 (0)