Перетаскиваемая панель инструментов - PullRequest
2 голосов
/ 20 марта 2011

как сделать перетаскиваемую / закрепляемую панель инструментов с JFace / SWT, как в Eclipse? Не могли бы вы опубликовать простой пример ApplicationWindow или дать ссылку на хороший источник того, как это сделать.

Спасибо.

Ответы [ 2 ]

3 голосов
/ 23 марта 2011

На случай, если кто-то найдет этот вопрос, я подготовил небольшой пример. Моя проблема была в неправильном использовании add метода. Вы должны использовать метод add(IToolBarManager toolBarManager) из CoolBarManager, а не из базового класса ContributionManager.

import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.CoolBarManager;
import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.jface.action.ToolBarManager;
import org.eclipse.jface.window.ApplicationWindow;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

public class App extends ApplicationWindow {

  public App(Shell parent) {
    super(parent);
  }

  @Override
  protected Control createContents(Composite parent) {
    getShell().setText("CoolBarManager example");

    return super.createContents(parent);
  }

  @Override
  public void create() {
    addCoolBar(SWT.FLAT);
    super.create();
  }

  @Override
  protected CoolBarManager createCoolBarManager(int style) {
    CoolBarManager cbm = new CoolBarManager(style);

    IToolBarManager tb1 = new ToolBarManager(style);
    IToolBarManager tb2 = new ToolBarManager(style);

    tb1.add(new Action() {
      {
        setText("&Button1");
      }
    });
    tb1.add(new Action() {
      {
        setText("&Button2");
      }
    });
    tb1.add(new Action() {
      {
        setText("&Button3");
      }
    });

    tb2.add(new Action() {
      {
        setText("&Button4");
      }
    });

    tb2.add(new Action() {
      {
        setText("&Button5");
      }
    });

    cbm.add(tb1);
    cbm.add(tb2);

    return cbm;
  }

  public static void main(String[] args) {
    App app = new App(null);

    app.setBlockOnOpen(true);
    app.open();

    Display.getCurrent().dispose();
  }
}
3 голосов
/ 20 марта 2011

SWT имеет компонент под названием CoolBar. Вы можете создавать CoolBars довольно легко, используя CoolBarManager , или вы можете использовать только их вручную ( API Doc )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...