Sponsored link
ToolbarLayout(Draw2D/GEF - Java Eclipse)
特徴は、
指定の方向(水平・垂直)にFigureを追加していきます。FlowLayoutとは違って決して折り返しません。
また追加される方向でない側の水平位置/垂直位置レイアウトを指定したり、親Figureと同じにすることも可能
グラフとか表示するのにむいていると思います。
機能
Spacing
FigureとFigureの間隔
StretchMinorAxis
垂直にFigureを追加する場合、Figureの幅
水平にFigureを追加する場合、Figureの高さ
を親Figureの幅/高さ と同じになるように拡大するかどうか
MinorAlignment
StretchMinorAxisがtrueの場合無効
垂直にFigureを追加する場合、水平位置のレイアウト
ToolbarLayout.ALIGN_BOTTOMRIGHT 右
ToolbarLayout.ALIGN_CENTER 中央
ToolbarLayout.ALIGN_TOPLEFT 左
水平にFigureを追加する場合、垂直位置のレイアウト
ToolbarLayout.ALIGN_BOTTOMRIGHT 下
ToolbarLayout.ALIGN_CENTER 中央
ToolbarLayout.ALIGN_TOPLEFT 上
例
水平上にFigureを追加・下側にレイアウト

ToolbarLayout layout=new ToolbarLayout(true); layout.setMinorAlignment(ToolbarLayout.ALIGN_BOTTOMRIGHT); layout.setStretchMinorAxis(false); layout.setSpacing(5);
垂直上にFigureを追加・レイアウトはフィル

ToolbarLayout layout=new ToolbarLayout(false); //layout.setMinorAlignment(ToolbarLayout.ALIGN_BOTTOMRIGHT); layout.setStretchMinorAxis(true); layout.setSpacing(0);
コード全文
GEFに含まれるdraw2d.jarが必要です。
コードはCVSからダウンロードできます。
/*
* Created on 2005/08/02
* Author aki@www.xucker.jpn.org
* License Apache2.0 or Common Public License
*/
package example.draw2d.first;
import org.eclipse.draw2d.BorderLayout;
import org.eclipse.draw2d.ColorConstants;
import org.eclipse.draw2d.Figure;
import org.eclipse.draw2d.FigureCanvas;
import org.eclipse.draw2d.Label;
import org.eclipse.draw2d.LineBorder;
import org.eclipse.draw2d.Panel;
import org.eclipse.draw2d.ToolbarLayout;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
/**
*
*
*/
public class ToolbarLayoutTest {
public ToolbarLayoutTest(Shell shell) {
shell.setBounds(0,0,400,150);
shell.setLayout(new FillLayout(SWT.VERTICAL));
FigureCanvas canvas = new FigureCanvas(shell);
Panel panel=new Panel();
panel.setBackgroundColor(ColorConstants.orange);
canvas.setContents(panel);
ToolbarLayout layout=new ToolbarLayout(false);
//layout.setMinorAlignment(ToolbarLayout.ALIGN_BOTTOMRIGHT);
layout.setStretchMinorAxis(true);
layout.setSpacing(0);
panel.setLayoutManager(layout);
for(int i=0;i<4;i++){
set(panel,"label "+i);
}
panel.revalidate();
}
public void set(Figure parent,String label){
Label labelFigure=new Label(label);
labelFigure.setBorder(new LineBorder());
parent.add(labelFigure);
}
public static void main(String[] args) {
Display display=new Display();
Shell shell=new Shell(display);
ToolbarLayoutTest app=new ToolbarLayoutTest(shell);
shell.open();
while(!shell.isDisposed()){
if (!display.readAndDispatch ()){
display.sleep ();
}
}
display.dispose();
}
}
