Montag, 20. Juni 2011

Eclipse RCP - Größe einer View bestimmen

Problem: die Größe einer View (ViewPart) bestimmen, damit diese eine feste größe besitzt.

Lösung: Interface ISizeProvider

Normalerweise verhält sich die Höhe und die Breite einer ViewPart in einer festgelegten Ralation zur Größe des Fensters und anderer ViewPart Elemente. Das Beispiel zeigt, wie die Höhe und Breite einer View fixiert werden kann.


class MyView extends ViewPart implements ISizeProvider
{

  public static final String ID = "myapp.MyView";
  public void createPartControl(Composite composite) {
    //..
  }

  public int getSizeFlags(boolean width)
  {
    return SWT.MIN;
  }

  public int computePreferredSize(
        boolean width,
        int availableParallel,
        int availablePerpendicular,
        int preferredResult)
  {
    if (!width)return 200;
    return 1000;
  }
}

Mit dem Rückgabewert SWT.MIN in der Methode getSizeFlags wird festgelegt, wann die Methode computePreferredSize aufgerufen wird. Da wir in unserem Beispiel die Höhe und die Breite fixieren möchten kann der boolean Parameter der Methode getSizeFlags ignoriert werden. Der Rückgabewert kann daher fest auf SWT.MIN gestellt werden. In der Methode computePreferredSize wird in Abhängigkeit vom Parameter width die Mindestbreite oder Mindesthöhe zurückgegeben.

Keine Kommentare:

Kommentar veröffentlichen