📄 gridlayouttab.java
字号:
}
/**
* Creates the example layout.
*/
void createLayout () {
gridLayout = new GridLayout ();
layoutComposite.setLayout (gridLayout);
}
/**
* Disposes the editors without placing their contents
* into the table.
*/
void disposeEditors () {
comboEditor.setEditor (null, null, -1);
combo.dispose ();
widthText.dispose ();
heightText.dispose ();
hAlign.dispose ();
vAlign.dispose ();
hIndent.dispose ();
hSpan.dispose ();
vSpan.dispose ();
hGrab.dispose ();
vGrab.dispose ();
}
/**
* Generates code for the example layout.
*/
StringBuffer generateLayoutCode () {
StringBuffer code = new StringBuffer ();
code.append ("\t\tGridLayout gridLayout = new GridLayout ();\n");
if (gridLayout.numColumns != 1) {
code.append ("\t\tgridLayout.numColumns = " + gridLayout.numColumns + ";\n");
}
if (gridLayout.makeColumnsEqualWidth) {
code.append ("\t\tgridLayout.makeColumnsEqualWidth = true;\n");
}
if (gridLayout.marginHeight != 5) {
code.append ("\t\tgridLayout.marginHeight = " + gridLayout.marginHeight + ";\n");
}
if (gridLayout.marginWidth != 5) {
code.append ("\t\tgridLayout.marginWidth = " + gridLayout.marginWidth + ";\n");
}
if (gridLayout.horizontalSpacing != 5) {
code.append ("\t\tgridLayout.horizontalSpacing = " + gridLayout.horizontalSpacing + ";\n");
}
if (gridLayout.verticalSpacing != 5) {
code.append ("\t\tgridLayout.verticalSpacing = " + gridLayout.verticalSpacing + ";\n");
}
code.append ("\t\tshell.setLayout (gridLayout);\n");
boolean first = true;
for (int i = 0; i < children.length; i++) {
Control control = children [i];
code.append (getChildCode (control, i));
GridData data = (GridData) control.getLayoutData ();
if (data != null) {
code.append ("\t\t");
if (first) {
code.append ("GridData ");
first = false;
}
code.append ("data = new GridData ();\n");
if (data.widthHint != SWT.DEFAULT) {
code.append ("\t\tdata.widthHint = " + data.widthHint + ";\n");
}
if (data.heightHint != SWT.DEFAULT) {
code.append ("\t\tdata.heightHint = " + data.heightHint + ";\n");
}
if (data.horizontalAlignment != GridData.BEGINNING) {
String alignment;
int hAlignment = data.horizontalAlignment;
if (hAlignment == GridData.CENTER) alignment = "GridData.CENTER";
else if (hAlignment == GridData.END) alignment = "GridData.END";
else alignment = "GridData.FILL";
code.append ("\t\tdata.horizontalAlignment = " + alignment + ";\n");
}
if (data.verticalAlignment != GridData.CENTER) {
String alignment;
int vAlignment = data.verticalAlignment;
if (vAlignment == GridData.BEGINNING) alignment = "GridData.BEGINNING";
else if (vAlignment == GridData.END) alignment = "GridData.END";
else alignment = "GridData.FILL";
code.append ("\t\tdata.verticalAlignment = " + alignment + ";\n");
}
if (data.horizontalIndent != 0) {
code.append ("\t\tdata.horizontalIndent = " + data.horizontalIndent + ";\n");
}
if (data.horizontalSpan != 1) {
code.append ("\t\tdata.horizontalSpan = " + data.horizontalSpan + ";\n");
}
if (data.verticalSpan != 1) {
code.append ("\t\tdata.verticalSpan = " + data.verticalSpan + ";\n");
}
if (data.grabExcessHorizontalSpace) {
code.append ("\t\tdata.grabExcessHorizontalSpace = true;\n");
}
if (data.grabExcessVerticalSpace) {
code.append ("\t\tdata.grabExcessVerticalSpace = true;\n");
}
if (code.substring (code.length () - 33).equals ("GridData data = new GridData ();\n")) {
code.delete (code.length () - 33, code.length ());
first = true;
} else if (code.substring (code.length () - 24).equals ("data = new GridData ();\n")) {
code.delete (code.length () - 24, code.length ());
} else {
code.append ("\t\t" + names [i] + ".setLayoutData (data);\n");
}
}
}
return code;
}
/**
* Returns the layout data field names.
*/
String [] getLayoutDataFieldNames() {
return new String [] {
"",
"Control",
"width",
"height",
"horizontalAlignment",
"verticalAlignment",
"horizontalIndent",
"horizontalSpan",
"verticalSpan",
"grabExcessHorizontalSpace",
"grabExcessVerticalSpace"
};
}
/**
* Gets the text for the tab folder item.
*/
String getTabText () {
return "GridLayout";
}
/**
* Takes information from TableEditors and stores it.
*/
void resetEditors () {
resetEditors (false);
}
void resetEditors (boolean tab) {
TableItem oldItem = comboEditor.getItem ();
if (oldItem != null) {
int row = table.indexOf (oldItem);
try {
new Integer (widthText.getText ()).intValue ();
} catch (NumberFormatException e) {
widthText.setText (oldItem.getText (WIDTH_COL));
}
try {
new Integer (heightText.getText ()).intValue ();
} catch (NumberFormatException e) {
heightText.setText (oldItem.getText (HEIGHT_COL));
}
try {
new Integer (hIndent.getText ()).intValue ();
} catch (NumberFormatException e) {
hIndent.setText (oldItem.getText (HINDENT_COL));
}
try {
new Integer (hSpan.getText ()).intValue ();
} catch (NumberFormatException e) {
hSpan.setText (oldItem.getText (HSPAN_COL));
}
try {
new Integer (vSpan.getText ()).intValue ();
} catch (NumberFormatException e) {
vSpan.setText (oldItem.getText (VSPAN_COL));
}
String [] insert = new String [] {
String.valueOf (row), combo.getText (), widthText.getText (), heightText.getText (),
hAlign.getText (), vAlign.getText (), hIndent.getText (),
hSpan.getText (), vSpan.getText (), hGrab.getText (), vGrab.getText ()
};
data.setElementAt (insert, row);
for (int i = 0; i < TOTAL_COLS; i++) {
oldItem.setText (i, ((String [])data.elementAt (row)) [i]);
}
if (!tab) disposeEditors ();
}
setLayoutState ();
refreshLayoutComposite ();
setLayoutData ();
layoutComposite.layout (true);
layoutGroup.layout (true);
}
/**
* Sets the layout data for the children of the layout.
*/
void setLayoutData () {
Control [] children = layoutComposite.getChildren ();
TableItem [] items = table.getItems ();
GridData data;
int hIndent, hSpan, vSpan;
String vAlign, hAlign, vGrab, hGrab;
for (int i = 0; i < children.length; i++) {
data = new GridData ();
/* Set widthHint and heightHint */
data.widthHint = new Integer (items [i].getText (WIDTH_COL)).intValue ();
data.heightHint = new Integer (items [i].getText (HEIGHT_COL)).intValue ();
/* Set vertical alignment and horizontal alignment */
hAlign = items [i].getText (HALIGN_COL);
if (hAlign.equals ("CENTER")) {
data.horizontalAlignment = GridData.CENTER;
} else if (hAlign.equals ("END")) {
data.horizontalAlignment = GridData.END;
} else if (hAlign.equals ("FILL")) {
data.horizontalAlignment = GridData.FILL;
} else {
data.horizontalAlignment = GridData.BEGINNING;
}
vAlign = items [i].getText (VALIGN_COL);
if (vAlign.equals ("BEGINNING")) {
data.verticalAlignment = GridData.BEGINNING;
} else if (vAlign.equals ("END")) {
data.verticalAlignment = GridData.END;
} else if (vAlign.equals ("FILL")) {
data.verticalAlignment = GridData.FILL;
} else {
data.verticalAlignment = GridData.CENTER;
}
/* Set indents and spans */
hIndent = new Integer (items [i].getText (HINDENT_COL)).intValue ();
data.horizontalIndent = hIndent;
hSpan = new Integer (items [i].getText (HSPAN_COL)).intValue ();
data.horizontalSpan = hSpan;
vSpan = new Integer (items [i].getText (VSPAN_COL)).intValue ();
data.verticalSpan = vSpan;
/* Set grabbers */
hGrab = items [i].getText (HGRAB_COL);
if (hGrab.equals ("true")) {
data.grabExcessHorizontalSpace = true;
} else {
data.grabExcessHorizontalSpace = false;
}
vGrab = items [i].getText (VGRAB_COL);
if (vGrab.equals ("true")) {
data.grabExcessVerticalSpace = true;
} else {
data.grabExcessVerticalSpace = false;
}
children [i].setLayoutData (data);
}
}
/**
* Sets the state of the layout.
*/
void setLayoutState () {
/* Set the columns for the layout */
try {
gridLayout.numColumns = new Integer (numColumns.getText ()).intValue ();
} catch (NumberFormatException e) {
gridLayout.numColumns = 1;
}
gridLayout.makeColumnsEqualWidth = makeColumnsEqualWidth.getSelection ();
/* Set the margins and spacing */
try {
gridLayout.marginHeight = new Integer (marginHeight.getText ()).intValue ();
} catch (NumberFormatException e) {
gridLayout.marginHeight = 5;
marginHeight.select (2);
}
try {
gridLayout.marginWidth = new Integer (marginWidth.getText ()).intValue ();
} catch (NumberFormatException e) {
gridLayout.marginWidth = 5;
marginWidth.select (2);
}
try {
gridLayout.horizontalSpacing = new Integer (horizontalSpacing.getText ()).intValue ();
} catch (NumberFormatException e) {
gridLayout.horizontalSpacing = 5;
horizontalSpacing.select (2);
}
try {
gridLayout.verticalSpacing = new Integer (verticalSpacing.getText ()).intValue ();
} catch (NumberFormatException e) {
gridLayout.verticalSpacing = 5;
verticalSpacing.select (2);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -