RCP GEF Tooltip

Rainbow

Bekanntes Mitglied
Hallo zusammen,
ich arbeite zur Zeit mit GEF und draw2d.
Es geht um ein Problem mit dem Tooltip. Ich habe eine Klasse, welche von der Klasse PolygonShape erbt. In dieser Klasse überschreibe ich die Methode getTooltip(). Diese muss eine IFigure zurückgeben.
Jetzt habe ich die Anforderung bekommen, das der Tooltip eine bestimmte Zeit eingeblendet bleiben soll und bei Doppelklick dauerhaft angezeigt wird und beim nächsten Doppelklick wieder ausgeblendet wird.

Gibt es dafür an der Stelle eine Möglichkeit?

Java:
@Override
public IFigure getToolTip() {
	IFigure panel = new Panel();
	panel.setLayoutManager(new GridLayout());
	panel.add(new Label("Hello"));
	panel.add(new Label("World"));
return (panel);
}

Liebe Grüße
Rainbow
 

Rainbow

Bekanntes Mitglied
Also ich habe da immer noch keine Möglichkeit gefunden. Gibt es da gar nichts?
Das ist ne ziemlich wichtige Sache...

Liebe Grüße
 

Rainbow

Bekanntes Mitglied
Da intern in draw2d die Sache wie folgt geregelt ist:
Java:
	public void displayToolTipNear(IFigure hoverSource, IFigure tip,
			int eventX, int eventY) {
		if (tip != null && hoverSource != currentTipSource) {
			getLightweightSystem().setContents(tip);
			Point displayPoint = computeWindowLocation(tip, eventX, eventY);
			Dimension shellSize = getLightweightSystem().getRootFigure()
					.getPreferredSize().getExpanded(getShellTrimSize());
			setShellBounds(displayPoint.x, displayPoint.y, shellSize.width,
					shellSize.height);
			show();
			currentTipSource = hoverSource;
			timer = new Timer(true);
			timer.schedule(new TimerTask() {
				public void run() {
					Display.getDefault().asyncExec(new Runnable() {
						public void run() {
							hide();
							timer.cancel();
						}
					});
				}
			}, 5000);
		}
	}

denke ich, dass man die Zeit nciht beeinflussen kann, da ja 5000 fest im Code steht.
Oder sieht das jemand anders?
 

Sonecc

Gesperrter Benutzer
Das wirst du wohl ohne weiteres nicht lösen können.
Du könntest ein wenig Hacking betreiben und beim Tooltip-Figure die setVisible Methode so überschreiben, dass sie nicht verarbeitet wird, sofern das Figure damit versteckt werden soll.
Dadurch hast du die Möglichkeit dein Figure dauerhaft anzuzeigen und kannst das schließen des Tooltips damit selbst steuern. (indem du super.setVisible(false) direkt aufrufst

Beachte aber, dass das IMO schon recht fahrig sein kann, weil auch Side-effects beachtet werden müssen.
 

Rainbow

Bekanntes Mitglied
Ja, das denke ich auch...und da es auch nicht für mich ist sondern es schon um was wichtigeres geht ist mir das dann doch zu riskant und ich erkläre das dem Kunden dann doch lieber so.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
L RCP JavaDoc Tooltip mit Markierungsmodus Plattformprogrammierung 3

Ähnliche Java Themen

Neue Themen


Oben