use of org.eclipse.swt.layout.FormAttachment in project GT by Tencent.
the class SettingView method createMemTabItem.
/**
* 为了迎合兰姐的界面,要求改的好丑啊
* @param parent
*/
private void createMemTabItem(TabFolder parent) {
TabItem memTabItem = new TabItem(parent, SWT.NONE);
memTabItem.setText("内存");
Composite memTabRoot = new Composite(parent, SWT.NONE);
memTabRoot.setLayout(new FormLayout());
FormData testPeriodGroupFormData = new FormData();
testPeriodGroupFormData.left = new FormAttachment(0, Constant.MARGIN_WIDTH);
testPeriodGroupFormData.right = new FormAttachment(100, -Constant.MARGIN_WIDTH);
testPeriodGroupFormData.top = new FormAttachment(memTabRoot, Constant.MARGIN_WIDTH_NARROW);
Group periodGroup = new Group(memTabRoot, SWT.NONE);
periodGroup.setLayoutData(testPeriodGroupFormData);
periodGroup.setLayout(new FillLayout(SWT.HORIZONTAL));
Label memLabel = new Label(periodGroup, SWT.NONE);
memLabel.setText("采样间隔(ms)");
itemTestPeriod[Constant.MEM_INDEX] = new Text(periodGroup, SWT.BORDER);
itemTestPeriod[Constant.MEM_INDEX].setText("3000");
itemTestPeriod[Constant.MEM_INDEX].addVerifyListener(new SWTNumberVerifyListener());
itemTestPeriod[Constant.MEM_INDEX].addModifyListener(new ModifyListener() {
@Override
public void modifyText(ModifyEvent e) {
APTState.getInstance().DealWithEventBefore(APTEventEnum.CONFIGRURE_OPER);
APTState.getInstance().DealWithEventAfter(APTEventEnum.CONFIGRURE_OPER);
}
});
FormData hprofDumpSwitchGroupFormData = new FormData();
hprofDumpSwitchGroupFormData.left = new FormAttachment(0, Constant.MARGIN_WIDTH);
hprofDumpSwitchGroupFormData.right = new FormAttachment(100, -Constant.MARGIN_WIDTH);
hprofDumpSwitchGroupFormData.top = new FormAttachment(periodGroup, Constant.MARGIN_WIDTH_NARROW);
Group hprofDumpSwitchGroup = new Group(memTabRoot, SWT.NONE);
hprofDumpSwitchGroup.setLayoutData(hprofDumpSwitchGroupFormData);
hprofDumpSwitchGroup.setLayout(new FillLayout(SWT.HORIZONTAL));
Label hprofDumpLabel = new Label(hprofDumpSwitchGroup, SWT.NONE);
hprofDumpLabel.setText("Dump Hprof");
hprofDumpSwitch = new Combo(hprofDumpSwitchGroup, SWT.DROP_DOWN | SWT.READ_ONLY);
hprofDumpSwitch.setItems(new String[] { "否", "是" });
hprofDumpSwitch.select(0);
hprofDumpSwitch.addModifyListener(new ModifyListener() {
@Override
public void modifyText(ModifyEvent e) {
// APTState.getInstance().DealWithEventBefore(APTEventEnum.CONFIGRURE_OPER);
// APTState.getInstance().DealWithEventAfter(APTEventEnum.CONFIGRURE_OPER);
}
});
FormData hprofDumpThresholdGroupFormData = new FormData();
hprofDumpThresholdGroupFormData.left = new FormAttachment(0, Constant.MARGIN_WIDTH);
hprofDumpThresholdGroupFormData.right = new FormAttachment(100, -Constant.MARGIN_WIDTH);
hprofDumpThresholdGroupFormData.top = new FormAttachment(hprofDumpSwitchGroup, Constant.MARGIN_WIDTH_NARROW);
Group hrpofDumpThresholdGroup = new Group(memTabRoot, SWT.NONE);
hrpofDumpThresholdGroup.setLayoutData(hprofDumpThresholdGroupFormData);
hrpofDumpThresholdGroup.setLayout(new FillLayout(SWT.HORIZONTAL));
Label hprofDumpThresholdLabel = new Label(hrpofDumpThresholdGroup, SWT.NONE);
hprofDumpThresholdLabel.setText("Dump阈值(kB)");
hprofDumpThreshold = new Text(hrpofDumpThresholdGroup, SWT.BORDER);
hprofDumpThreshold.setText("30000");
hprofDumpThreshold.addVerifyListener(new SWTNumberVerifyListener());
hprofDumpThreshold.addModifyListener(new ModifyListener() {
@Override
public void modifyText(ModifyEvent e) {
APTState.getInstance().DealWithEventBefore(APTEventEnum.CONFIGRURE_OPER);
APTState.getInstance().DealWithEventAfter(APTEventEnum.CONFIGRURE_OPER);
}
});
//Priv Dirty Group
FormData privGroupFormData = new FormData();
privGroupFormData.left = new FormAttachment(0, Constant.MARGIN_WIDTH);
privGroupFormData.right = new FormAttachment(100, -Constant.MARGIN_WIDTH);
privGroupFormData.top = new FormAttachment(hrpofDumpThresholdGroup, Constant.MARGIN_WIDTH_NARROW);
Group privGroup = new Group(memTabRoot, SWT.NONE);
privGroup.setText("Priv Dirty");
privGroup.setLayoutData(privGroupFormData);
privGroup.setLayout(new GridLayout(3, true));
//PSS Group
FormData pssGroupFormData = new FormData();
pssGroupFormData.left = new FormAttachment(0, Constant.MARGIN_WIDTH);
pssGroupFormData.right = new FormAttachment(100, -Constant.MARGIN_WIDTH);
pssGroupFormData.top = new FormAttachment(privGroup, Constant.MARGIN_WIDTH_NARROW);
Group pssGroup = new Group(memTabRoot, SWT.NONE);
pssGroup.setText("PSS");
pssGroup.setLayoutData(pssGroupFormData);
pssGroup.setLayout(new GridLayout(3, true));
//Heap Allocated Group
FormData heapGroupFormData = new FormData();
heapGroupFormData.left = new FormAttachment(0, Constant.MARGIN_WIDTH);
heapGroupFormData.right = new FormAttachment(100, -Constant.MARGIN_WIDTH);
heapGroupFormData.top = new FormAttachment(pssGroup, Constant.MARGIN_WIDTH_NARROW);
Group heapGroup = new Group(memTabRoot, SWT.NONE);
heapGroup.setText("Heap Allocated");
heapGroup.setLayoutData(heapGroupFormData);
heapGroup.setLayout(new GridLayout(3, true));
//Heap Size Group
FormData heapsizeGroupFormData = new FormData();
heapsizeGroupFormData.left = new FormAttachment(0, Constant.MARGIN_WIDTH);
heapsizeGroupFormData.right = new FormAttachment(100, -Constant.MARGIN_WIDTH);
heapsizeGroupFormData.top = new FormAttachment(heapGroup, Constant.MARGIN_WIDTH_NARROW);
Group heapsizeGroup = new Group(memTabRoot, SWT.NONE);
heapsizeGroup.setText("Heap Size");
heapsizeGroup.setLayoutData(heapsizeGroupFormData);
heapsizeGroup.setLayout(new GridLayout(3, true));
memStatCheckBtns = new Button[Constant.ALL_MEM_KIND_COUNT];
for (int i = 0; i < Constant.ALL_MEM_KIND_COUNT; i++) {
Group group = null;
if (i < 3) {
group = privGroup;
} else if (i < 6) {
group = pssGroup;
} else if (i < 9) {
group = heapGroup;
} else {
group = heapsizeGroup;
}
//final int index = i;
memStatCheckBtns[i] = new Button(group, SWT.CHECK);
memStatCheckBtns[i].setText(memStatCheckBtnTitles[i]);
memStatCheckBtns[i].addSelectionListener(new SelectionListener() {
@Override
public void widgetSelected(SelectionEvent e) {
if (isSupportCheckChangeOper) {
//APTConsoleFactory.getInstance().APTPrint("内存check更新");
GetCurCheckedStateUtil.update();
}
}
@Override
public void widgetDefaultSelected(SelectionEvent e) {
}
});
}
//memStatCheckBtns[Constant.PRIV_TOTAL_INDEX].setSelection(true);
memStatCheckBtns[Constant.PSS_TOTAL_INDEX].setSelection(true);
//memStatCheckBtns[Constant.HEAPALLOC_TOTAL_INDEX].setSelection(true);
FormData labelFormData = new FormData();
labelFormData.left = new FormAttachment(0, Constant.MARGIN_WIDTH);
labelFormData.right = new FormAttachment(100, -Constant.MARGIN_WIDTH);
labelFormData.bottom = new FormAttachment(100, -Constant.MARGIN_WIDTH);
Label showLabel = new Label(memTabRoot, SWT.NONE);
showLabel.setLayoutData(labelFormData);
showLabel.setText("提示:测试过程中可动态调整曲线显示");
showLabel.setForeground(new Color(parent.getDisplay(), 0, 64, 64));
showLabel.setFont(new Font(parent.getDisplay(), "宋体", 10, SWT.BOLD));
memTabItem.setControl(memTabRoot);
}
use of org.eclipse.swt.layout.FormAttachment in project GT by Tencent.
the class MemoryView method createChartPanel.
/**
* 初始化jfreechart
* @param rootFrame
*/
private void createChartPanel(Composite parent) {
chartComposite = new Composite(parent, SWT.NO_BACKGROUND | SWT.EMBEDDED);
FormData formData = new FormData();
formData.left = new FormAttachment(0, Constant.VIEW_MARGIN_WIDTH);
formData.right = new FormAttachment(viewer.getTable(), -Constant.VIEW_MARGIN_WIDTH);
formData.top = new FormAttachment(0, Constant.VIEW_MARGIN_WIDTH);
formData.bottom = new FormAttachment(100, -Constant.VIEW_MARGIN_WIDTH);
chartComposite.setLayoutData(formData);
Frame frame = SWT_AWT.new_Frame(chartComposite);
// 据说加入这个Panel可以无闪烁
Panel panel = new Panel(new BorderLayout()) {
private static final long serialVersionUID = 1L;
public void update(java.awt.Graphics g) {
/* Do not erase the background */
paint(g);
}
};
frame.add(panel);
JRootPane root = new JRootPane();
panel.add(root);
java.awt.Container contentPane = root.getContentPane();
memRealTimeChart = new MemoryRealTimeChart();
contentPane.add(memRealTimeChart);
}
use of org.eclipse.swt.layout.FormAttachment in project GT by Tencent.
the class PMAPView method createRootTabFolder.
/**
* 初始化tab页的根
* @param parent
*/
private void createRootTabFolder(Composite parent) {
rootTabFolder = new CTabFolder(parent, SWT.TOP | SWT.CLOSE | SWT.BORDER);
rootTabFolder.setTabHeight(20);
rootTabFolder.setLayout(new FillLayout());
rootTabFolder.marginHeight = 10;
rootTabFolder.marginWidth = 10;
// 显示“最大化、最小化”按钮
rootTabFolder.setMaximizeVisible(true);
rootTabFolder.setMinimizeVisible(true);
rootTabFolder.setSelectionBackground(parent.getDisplay().getSystemColor(SWT.COLOR_GRAY));
rootTabFolder.setSelectionForeground(parent.getDisplay().getSystemColor(SWT.COLOR_BLACK));
rootTabFolder.setUnselectedCloseVisible(true);
rootTabFolder.pack();
FormData rootTabFormData = new FormData();
rootTabFormData.left = new FormAttachment(0, 5);
rootTabFormData.right = new FormAttachment(100, -5);
rootTabFormData.top = new FormAttachment(toolGroup, 5);
rootTabFormData.bottom = new FormAttachment(100, -5);
rootTabFolder.setLayoutData(rootTabFormData);
}
use of org.eclipse.swt.layout.FormAttachment in project GT by Tencent.
the class PMAPView method createToolGroup.
/**
* 初始化工具条
* @param parent
*/
private void createToolGroup(Composite parent) {
FormData toolBarGroupFromData = new FormData();
toolBarGroupFromData.top = new FormAttachment(0, 5);
toolBarGroupFromData.left = new FormAttachment(0, 5);
toolBarGroupFromData.right = new FormAttachment(100, -5);
//绝对位置
toolBarGroupFromData.bottom = new FormAttachment(parent, 50);
toolGroup = new Group(parent, SWT.NONE);
toolGroup.setLayoutData(toolBarGroupFromData);
toolGroup.setLayout(new FillLayout(SWT.HORIZONTAL));
Label label = new Label(toolGroup, SWT.NONE | SWT.BOLD);
label.setText("饼图中显示数据项个数");
label.setFont(new Font(parent.getDisplay(), "宋体", 10, SWT.BOLD));
showDataItemCountText = new Text(toolGroup, SWT.BORDER);
showDataItemCountText.setText("10");
}
use of org.eclipse.swt.layout.FormAttachment in project dbeaver by serge-rider.
the class TabbedFolderList method layoutTabs.
/**
* Layout the tabs.
*/
private void layoutTabs() {
if (tabsThatFitInComposite == NONE || elements.length == 0) {
FormData formData = new FormData();
formData.left = new FormAttachment(0, 0);
formData.right = new FormAttachment(100, 0);
formData.top = new FormAttachment(0, 0);
formData.height = getTabHeight();
topNavigationElement.setLayoutData(formData);
formData = new FormData();
formData.left = new FormAttachment(0, 0);
formData.right = new FormAttachment(100, 0);
formData.top = new FormAttachment(topNavigationElement, 0);
formData.bottom = new FormAttachment(100, 0);
bottomNavigationElement.setLayoutData(formData);
} else {
FormData formData = new FormData();
formData.left = new FormAttachment(0, 0);
formData.right = new FormAttachment(100, 0);
formData.top = new FormAttachment(0, 0);
formData.height = 10;
topNavigationElement.setLayoutData(formData);
/*
* use nextElement to attach the layout to the previous canvas
* widget in the list.
*/
Canvas nextElement = topNavigationElement;
for (int i = 0; i < elements.length; i++) {
if (i < topVisibleIndex || i > bottomVisibleIndex) {
/*
* this tab is not visible
*/
elements[i].setLayoutData(null);
elements[i].setVisible(false);
} else {
/*
* this tab is visible.
*/
formData = new FormData();
formData.height = getTabHeight();
formData.left = new FormAttachment(0, 0);
formData.right = new FormAttachment(100, 0);
formData.top = new FormAttachment(nextElement, 0);
nextElement = elements[i];
elements[i].setLayoutData(formData);
elements[i].setVisible(true);
}
}
formData = new FormData();
formData.left = new FormAttachment(0, 0);
formData.right = new FormAttachment(100, 0);
formData.top = new FormAttachment(nextElement, 0);
formData.bottom = new FormAttachment(100, 0);
formData.height = 10;
bottomNavigationElement.setLayoutData(formData);
}
// layout so that we have enough space for the new labels
Composite grandparent = getParent().getParent();
grandparent.layout(true);
layout(true);
}
Aggregations