use of com.codename1.ui.table.TableLayout.Constraint in project CodenameOne by codenameone.
the class TableLayout method removeLayoutComponent.
/**
* {@inheritDoc}
*/
public void removeLayoutComponent(Component comp) {
// reflow the table
Vector comps = new Vector();
for (int r = 0; r < rows; r++) {
for (int c = 0; c < columns; c++) {
if (tablePositions[r * columns + c] != null) {
if (tablePositions[r * columns + c].parent != comp) {
comps.addElement(tablePositions[r * columns + c]);
} else {
tablePositions[r * columns + c].parent = null;
}
}
tablePositions[r * columns + c] = null;
}
}
currentRow = 0;
currentColumn = 0;
int count = comps.size();
for (int iter = 0; iter < count; iter++) {
Constraint con = (Constraint) comps.elementAt(iter);
if (con == H_SPAN_CONSTRAINT || con == V_SPAN_CONSTRAINT || con == VH_SPAN_CONSTRAINT) {
continue;
}
Component c = con.parent;
con.parent = null;
addLayoutComponent(con, c, c.getParent());
}
}
use of com.codename1.ui.table.TableLayout.Constraint in project CodenameOne by codenameone.
the class TableLayout method getRowHeightPixels.
private int getRowHeightPixels(int row, int percentageOf, int available) {
int current = 0;
for (int iter = 0; iter < columns; iter++) {
Constraint c = tablePositions[row * columns + iter];
if (c == null || c == H_SPAN_CONSTRAINT || c == V_SPAN_CONSTRAINT || c == VH_SPAN_CONSTRAINT || c.spanVertical > 1) {
continue;
}
// height in percentage of the parent container
if (c.height > 0) {
current = Math.max(current, c.height * percentageOf / 100);
} else {
Style s = c.parent.getStyle();
current = Math.max(current, c.parent.getPreferredH() + s.getMarginTop() + s.getMarginBottom());
}
if (available > -1) {
current = Math.min(available, current);
}
}
return current;
}
use of com.codename1.ui.table.TableLayout.Constraint in project CodenameOne by codenameone.
the class TableLayout method placeComponent.
/**
* Places the component/constraint in the proper alignment within the cell whose bounds are given
*/
private void placeComponent(boolean rtl, Constraint con, int x, int y, int width, int height) {
con.parent.setX(x);
con.parent.setY(y);
con.parent.setWidth(width);
con.parent.setHeight(height);
Dimension pref = con.parent.getPreferredSize();
int pWidth = pref.getWidth();
int pHeight = pref.getHeight();
if (pWidth < width) {
int d = (width - pWidth);
int a = con.align;
if (rtl) {
switch(a) {
case Component.LEFT:
a = Component.RIGHT;
break;
case Component.RIGHT:
a = Component.LEFT;
break;
}
}
switch(a) {
case Component.LEFT:
con.parent.setX(x);
con.parent.setWidth(width - d);
break;
case Component.RIGHT:
con.parent.setX(x + d);
con.parent.setWidth(width - d);
break;
case Component.CENTER:
con.parent.setX(x + d / 2);
con.parent.setWidth(width - d);
break;
}
}
if (pHeight < height) {
int d = (height - pHeight);
switch(con.valign) {
case Component.TOP:
con.parent.setY(y);
con.parent.setHeight(height - d);
break;
case Component.BOTTOM:
con.parent.setY(y + d);
con.parent.setHeight(height - d);
break;
case Component.CENTER:
con.parent.setY(y + d / 2);
con.parent.setHeight(height - d);
break;
}
}
}
use of com.codename1.ui.table.TableLayout.Constraint in project CodenameOne by codenameone.
the class TableLayout method layoutContainer.
/**
* {@inheritDoc}
*/
public void layoutContainer(Container parent) {
try {
verticalSpanningExists = false;
horizontalSpanningExists = false;
// column and row size in pixels
Style s = parent.getStyle();
int top = s.getPaddingTop();
int left = s.getPaddingLeft(parent.isRTL());
int bottom = s.getPaddingBottom();
int right = s.getPaddingRight(parent.isRTL());
boolean rtl = parent.isRTL();
columnSizes = new int[columns];
if (modifableColumnSize == null || columns != modifableColumnSize.length) {
modifableColumnSize = new boolean[columns];
}
columnPositions = new int[columns];
int[] rowSizes = new int[rows];
rowPositions = new int[rows];
int pWidth = parent.getLayoutWidth() - parent.getSideGap() - left - right;
int pHeight = parent.getLayoutHeight() - parent.getBottomGap() - top - bottom;
int currentX = left;
int availableReminder = pWidth;
int cslen = columnSizes.length;
for (int iter = 0; iter < cslen; iter++) {
columnSizes[iter] = getColumnWidthPixels(iter, pWidth, availableReminder);
availableReminder -= columnSizes[iter];
}
// so they are distributed sensibly if no room is available
if (!parent.isScrollableX()) {
int totalWidth = 0;
int totalModifyablePixels = 0;
// check how many columns we can modify (the user hasn't requested a specific size for those)
for (int iter = 0; iter < modifableColumnSize.length; iter++) {
if (modifableColumnSize[iter]) {
totalModifyablePixels += columnSizes[iter];
}
totalWidth += columnSizes[iter];
}
if (pWidth < totalWidth) {
int totalPixelsToRemove = totalWidth - pWidth;
int totalPixelsNecessary = totalModifyablePixels - totalPixelsToRemove;
// Go over the modifyable columns and remove the right pixels according to the ratio
for (int iter = 0; iter < modifableColumnSize.length; iter++) {
if (modifableColumnSize[iter]) {
columnSizes[iter] = (int) (((float) columnSizes[iter]) / ((float) totalModifyablePixels) * totalPixelsNecessary);
}
}
}
}
for (int iter = 0; iter < columnSizes.length; iter++) {
if (rtl) {
currentX += columnSizes[iter];
columnPositions[iter] = pWidth - currentX;
} else {
columnPositions[iter] = currentX;
currentX += columnSizes[iter];
}
}
int currentY = top;
int rlen = rowSizes.length;
for (int iter = 0; iter < rlen; iter++) {
if (parent.isScrollableY()) {
rowSizes[iter] = getRowHeightPixels(iter, pHeight, -1);
} else {
rowSizes[iter] = getRowHeightPixels(iter, pHeight, pHeight - currentY + top);
}
rowPositions[iter] = currentY;
currentY += rowSizes[iter];
}
int clen = columnSizes.length;
for (int r = 0; r < rlen; r++) {
for (int c = 0; c < clen; c++) {
Constraint con = tablePositions[r * columns + c];
int conX, conY, conW, conH;
if (con != null && con != H_SPAN_CONSTRAINT && con != V_SPAN_CONSTRAINT && con != VH_SPAN_CONSTRAINT) {
Style componentStyle = con.parent.getStyle();
int leftMargin = componentStyle.getMarginLeft(parent.isRTL());
int topMargin = componentStyle.getMarginTop();
// conX = left + leftMargin + columnPositions[c]; // bugfix table with padding not drawn correctly
// conY = top + topMargin + rowPositions[r]; // bugfix table with padding not drawn correctly
conX = leftMargin + columnPositions[c];
conY = topMargin + rowPositions[r];
if (con.spanHorizontal > 1) {
horizontalSpanningExists = true;
int w = columnSizes[c];
for (int sh = 1; sh < con.spanHorizontal; sh++) {
w += columnSizes[Math.min(c + sh, columnSizes.length - 1)];
}
// for RTL we need to move the component to the side so spanning will work
if (rtl) {
conX = left + leftMargin + columnPositions[c + con.spanHorizontal - 1];
}
conW = w - leftMargin - componentStyle.getMarginLeft(parent.isRTL());
} else {
conW = columnSizes[c] - leftMargin - componentStyle.getMarginRight(parent.isRTL());
}
if (con.spanVertical > 1) {
verticalSpanningExists = true;
int h = rowSizes[r];
for (int sv = 1; sv < con.spanVertical; sv++) {
h += rowSizes[Math.min(r + sv, rowSizes.length - 1)];
}
conH = h - topMargin - componentStyle.getMarginBottom();
} else {
conH = rowSizes[r] - topMargin - componentStyle.getMarginBottom();
}
placeComponent(rtl, con, conX, conY, conW, conH);
}
}
}
} catch (ArrayIndexOutOfBoundsException err) {
Log.e(err);
}
}
use of com.codename1.ui.table.TableLayout.Constraint in project CodenameOne by codenameone.
the class UserInterfaceEditor method persistToXML.
private static void persistToXML(com.codename1.ui.Container containerInstance, com.codename1.ui.Component cmp, StringBuilder build, EditableResources res, String indent, String tabTitle) {
build.append(indent);
build.append("<component type=\"");
build.append((String) cmp.getClientProperty(TYPE_KEY));
build.append("\" name=\"");
if (cmp.getName() != null) {
build.append(xmlize(cmp.getName()));
}
build.append("\" ");
if (exportToNewGuiBuilderMode) {
String cmpName = cmp.getName();
Class cls = componentNames.get(cmpName);
if (cls == null) {
componentNames.put(cmpName, cmp.getClass());
} else {
if (cls != cmp.getClass()) {
componentNames.put(cmpName, com.codename1.ui.Component.class);
}
}
if (cmp instanceof List) {
listNames.add(cmp.getName());
}
if (cmp instanceof com.codename1.ui.Button || cmp instanceof com.codename1.ui.TextArea || cmp instanceof com.codename1.ui.Slider || cmp instanceof com.codename1.ui.List || cmp instanceof com.codename1.components.MultiButton || cmp instanceof com.codename1.components.SpanButton || cmp instanceof com.codename1.components.OnOffSwitch || cmp instanceof com.codename1.ui.Calendar || cmp instanceof com.codename1.ui.list.ContainerList) {
// add action listener XML
actionEventNames.add(cmp.getName());
build.append(" actionEvent=\"true\" ");
}
}
if (cmp.getClientProperty("cn1$Properties") != null) {
String[] p = ((String) cmp.getClientProperty("cn1$Properties")).split(",");
if (p.length > 0) {
build.append("clientProperties=\"");
boolean first = true;
for (String c : p) {
if (!first) {
build.append(",");
}
first = false;
build.append(c);
build.append("=");
build.append((String) cmp.getClientProperty(c));
}
build.append("\" ");
}
}
if (tabTitle != null) {
build.append("tabTitle=\"");
build.append(xmlize(tabTitle));
build.append("\" ");
}
if (cmp.getClientProperty("%base_form%") != null) {
build.append("baseForm=\"");
build.append(xmlize((String) cmp.getClientProperty("%base_form%")));
build.append("\" ");
}
if (cmp.getCloudBoundProperty() != null) {
build.append("cloudBoundProperty=\"");
build.append(xmlize(cmp.getCloudBoundProperty()));
build.append("\" ");
}
if (cmp.getCloudDestinationProperty() != null) {
build.append("cloudDestinationProperty=\"");
build.append(xmlize(cmp.getCloudDestinationProperty()));
build.append("\" ");
}
if (isPropertyModified(cmp, PROPERTY_COMMAND) || isPropertyModified(cmp, PROPERTY_COMMAND_LEGACY)) {
ActionCommand cmd;
if (cmp instanceof com.codename1.ui.Container) {
cmd = (ActionCommand) ((com.codename1.ui.Button) ((com.codename1.ui.Container) cmp).getLeadComponent()).getCommand();
} else {
cmd = (ActionCommand) ((com.codename1.ui.Button) cmp).getCommand();
}
build.append("commandName=\"");
build.append(xmlize(cmd.getCommandName()));
build.append("\" ");
if (cmd.getIcon() != null) {
build.append("commandIcon=\"");
build.append(xmlize(res.findId(cmd.getIcon())));
build.append("\" ");
}
if (cmd.getRolloverIcon() != null) {
build.append("commandRolloverIcon=\"");
build.append(xmlize(res.findId(cmd.getRolloverIcon())));
build.append("\" ");
}
if (cmd.getPressedIcon() != null) {
build.append("commandPressedIcon=\"");
build.append(xmlize(res.findId(cmd.getPressedIcon())));
build.append("\" ");
}
if (cmd.getDisabledIcon() != null) {
build.append("commandDisabledIcon=\"");
build.append(xmlize(res.findId(cmd.getDisabledIcon())));
build.append("\" ");
}
build.append("commandId=\"");
build.append(cmd.getId());
build.append("\" ");
if (cmd.getAction() != null) {
build.append("commandAction=\"");
build.append(xmlize(cmd.getAction()));
build.append("\" ");
if (cmd.getAction().equals("$Execute")) {
build.append("commandArgument=\"");
build.append(xmlize(cmd.getArgument()));
build.append("\" ");
}
}
build.append("commandBack=\"");
build.append(cmp.getComponentForm().getBackCommand() == cmd);
build.append("\" ");
if (exportToNewGuiBuilderMode) {
build.append(" varName=\"");
String varName;
if (cmd.getCommandName() == null || cmd.getCommandName().length() == 0) {
varName = ResourceEditorView.normalizeFormName(cmd.getCommandName());
build.append(varName);
} else {
varName = "Command" + commandCounter;
build.append(varName);
commandCounter++;
}
build.append("\" ");
String action = cmd.getAction();
if (action != null) {
if (cmp.getComponentForm() != null) {
commandList.add(cmd);
cmd.putClientProperty("FORMNAME", cmp.getComponentForm().getName());
}
}
}
}
if (isPropertyModified(cmp, PROPERTY_LABEL_FOR)) {
if (cmp.getLabelForComponent() != null) {
build.append("labelFor=\"");
build.append(xmlize(cmp.getLabelForComponent().getName()));
build.append("\" ");
}
}
if (isPropertyModified(cmp, PROPERTY_LEAD_COMPONENT) && ((com.codename1.ui.Container) cmp).getLeadComponent() != null) {
build.append("leadComponent=\"");
build.append(xmlize(((com.codename1.ui.Container) cmp).getLeadComponent().getName()));
build.append("\" ");
}
if (isPropertyModified(cmp, PROPERTY_NEXT_FOCUS_DOWN) && cmp.getNextFocusDown() != null) {
build.append("nextFocusDown=\"");
build.append(xmlize(cmp.getNextFocusDown().getName()));
build.append("\" ");
}
if (isPropertyModified(cmp, PROPERTY_NEXT_FOCUS_UP) && cmp.getNextFocusUp() != null) {
build.append("nextFocusUp=\"");
build.append(xmlize(cmp.getNextFocusUp().getName()));
build.append("\" ");
}
if (isPropertyModified(cmp, PROPERTY_NEXT_FOCUS_LEFT) && cmp.getNextFocusLeft() != null) {
build.append("nextFocusLeft=\"");
build.append(xmlize(cmp.getNextFocusLeft().getName()));
build.append("\" ");
}
if (isPropertyModified(cmp, PROPERTY_NEXT_FOCUS_RIGHT) && cmp.getNextFocusRight() != null) {
build.append("nextFocusRight=\"");
build.append(xmlize(cmp.getNextFocusRight().getName()));
build.append("\" ");
}
if (isPropertyModified(cmp, PROPERTY_EMBED)) {
build.append("embed=\"");
build.append(xmlize(((EmbeddedContainer) cmp).getEmbed()));
build.append("\" ");
}
if (isPropertyModified(cmp, PROPERTY_UIID)) {
build.append("uiid=\"");
build.append(cmp.getUIID());
build.append("\" ");
}
if (isPropertyModified(cmp, PROPERTY_FOCUSABLE)) {
build.append("focusable=\"");
build.append(cmp.isFocusable());
build.append("\" ");
}
if (isPropertyModified(cmp, PROPERTY_ENABLED)) {
build.append("enabled=\"");
build.append(cmp.isEnabled());
build.append("\" ");
}
if (isPropertyModified(cmp, PROPERTY_RTL)) {
build.append("rtl=\"");
build.append(cmp.isRTL());
build.append("\" ");
}
if (isPropertyModified(cmp, PROPERTY_SCROLL_VISIBLE)) {
build.append("scrollVisible=\"");
build.append(cmp.isScrollVisible());
build.append("\" ");
}
/*if(isPropertyModified(cmp, PROPERTY_PREFERRED_WIDTH)) {
out.writeInt(PROPERTY_PREFERRED_WIDTH);
out.writeInt(cmp.getPreferredW());
}
if(isPropertyModified(cmp, PROPERTY_PREFERRED_HEIGHT)) {
out.writeInt(PROPERTY_PREFERRED_HEIGHT);
out.writeInt(cmp.getPreferredH());
}*/
if (isPropertyModified(cmp, PROPERTY_TENSILE_DRAG_ENABLED)) {
build.append("tensileDragEnabled=\"");
build.append(cmp.isTensileDragEnabled());
build.append("\" ");
}
if (isPropertyModified(cmp, PROPERTY_TACTILE_TOUCH)) {
build.append("tactileTouch=\"");
build.append(cmp.isTactileTouch());
build.append("\" ");
}
if (isPropertyModified(cmp, PROPERTY_SNAP_TO_GRID)) {
build.append("snapToGrid=\"");
build.append(cmp.isSnapToGrid());
build.append("\" ");
}
if (isPropertyModified(cmp, PROPERTY_FLATTEN)) {
build.append("flatten=\"");
build.append(cmp.isFlatten());
build.append("\" ");
}
if (isActualContainer(cmp) || cmp instanceof com.codename1.ui.list.ContainerList) {
com.codename1.ui.Container cnt = (com.codename1.ui.Container) cmp;
if (isPropertyModified(cnt, PROPERTY_SCROLLABLE_X)) {
build.append("scrollableX=\"");
build.append(CodenameOneAccessor.isScrollableX(cnt));
build.append("\" ");
}
if (isPropertyModified(cnt, PROPERTY_SCROLLABLE_Y)) {
build.append("scrollableY=\"");
build.append(CodenameOneAccessor.isScrollableY(cnt));
build.append("\" ");
}
if (cmp instanceof com.codename1.ui.Tabs) {
com.codename1.ui.Tabs tab = (com.codename1.ui.Tabs) cmp;
if (isPropertyModified(cmp, PROPERTY_TAB_PLACEMENT)) {
build.append("tabPlacement=\"");
build.append(((com.codename1.ui.Tabs) cmp).getTabPlacement());
build.append("\" ");
}
if (isPropertyModified(cmp, PROPERTY_TAB_TEXT_POSITION)) {
build.append("tabTextPosition=\"");
build.append(((com.codename1.ui.Tabs) cmp).getTabTextPosition());
build.append("\" ");
}
build.append(">\n");
appendComponentXMLBody(containerInstance, cmp, build, res, indent + " ");
for (int iter = 0; iter < tab.getTabCount(); iter++) {
persistToXML(containerInstance, tab.getTabComponentAt(iter), build, res, indent + " ", tab.getTabTitle(iter));
}
build.append(indent);
build.append("</component>\n");
} else {
if (isPropertyModified(cmp, PROPERTY_LAYOUT)) {
com.codename1.ui.layouts.Layout l = cnt.getLayout();
build.append("layout=\"");
if (l instanceof com.codename1.ui.layouts.FlowLayout) {
com.codename1.ui.layouts.FlowLayout f = (com.codename1.ui.layouts.FlowLayout) l;
build.append("FlowLayout\" flowLayoutFillRows=\"");
build.append(f.isFillRows());
build.append("\" flowLayoutAlign=\"");
build.append(f.getAlign());
build.append("\" flowLayoutValign=\"");
build.append(f.getValign());
build.append("\" ");
} else {
if (l instanceof com.codename1.ui.layouts.BorderLayout) {
com.codename1.ui.layouts.BorderLayout b = (com.codename1.ui.layouts.BorderLayout) l;
build.append("BorderLayout\" borderLayoutAbsoluteCenter=\"");
build.append(b.isAbsoluteCenter());
build.append("\" ");
String north = b.getLandscapeSwap(com.codename1.ui.layouts.BorderLayout.NORTH);
String east = b.getLandscapeSwap(com.codename1.ui.layouts.BorderLayout.EAST);
String west = b.getLandscapeSwap(com.codename1.ui.layouts.BorderLayout.WEST);
String south = b.getLandscapeSwap(com.codename1.ui.layouts.BorderLayout.SOUTH);
String center = b.getLandscapeSwap(com.codename1.ui.layouts.BorderLayout.CENTER);
if (north != null) {
build.append("borderLayoutSwapNorth=\"");
build.append(north);
build.append("\" ");
}
if (east != null) {
build.append("borderLayoutSwapEast=\"");
build.append(east);
build.append("\" ");
}
if (west != null) {
build.append("borderLayoutSwapWest=\"");
build.append(west);
build.append("\" ");
}
if (south != null) {
build.append("borderLayoutSwapSouth=\"");
build.append(south);
build.append("\" ");
}
if (center != null) {
build.append("borderLayoutSwapCenter=\"");
build.append(center);
build.append("\" ");
}
} else {
if (l instanceof com.codename1.ui.layouts.GridLayout) {
build.append("GridLayout\" gridLayoutRows=\"");
build.append(((com.codename1.ui.layouts.GridLayout) l).getRows());
build.append("\" gridLayoutColumns=\"");
build.append(((com.codename1.ui.layouts.GridLayout) l).getColumns());
build.append("\" ");
} else {
if (l instanceof com.codename1.ui.layouts.BoxLayout) {
if (getInt("axis", l.getClass(), l) == com.codename1.ui.layouts.BoxLayout.X_AXIS) {
build.append("BoxLayout\" boxLayoutAxis=\"X\" ");
} else {
build.append("BoxLayout\" boxLayoutAxis=\"Y\" ");
}
} else {
if (l instanceof com.codename1.ui.table.TableLayout) {
build.append("TableLayout\" tableLayoutRows=\"");
build.append(((com.codename1.ui.table.TableLayout) l).getRows());
build.append("\" tableLayoutColumns=\"");
build.append(((com.codename1.ui.table.TableLayout) l).getColumns());
build.append("\" ");
} else {
if (l instanceof com.codename1.ui.layouts.LayeredLayout) {
build.append("LayeredLayout\" ");
}
}
}
}
}
}
}
if (cmp instanceof com.codename1.ui.Form) {
com.codename1.ui.Form frm = (com.codename1.ui.Form) cmp;
if (isPropertyModified(cmp, PROPERTY_NEXT_FORM) && frm.getClientProperty("%next_form%") != null) {
build.append("nextForm=\"");
build.append(xmlize((String) frm.getClientProperty("%next_form%")));
build.append("\" ");
}
if (isPropertyModified(cmp, PROPERTY_TITLE)) {
build.append("title=\"");
build.append(xmlize(frm.getTitle()));
build.append("\" ");
}
if (isPropertyModified(cmp, PROPERTY_CYCLIC_FOCUS)) {
build.append("cyclicFocus=\"");
build.append(frm.isCyclicFocus());
build.append("\" ");
}
if (isPropertyModified(cmp, PROPERTY_DIALOG_UIID) && cmp instanceof com.codename1.ui.Dialog) {
com.codename1.ui.Dialog dlg = (com.codename1.ui.Dialog) cmp;
build.append("dialogUIID=\"");
build.append(dlg.getDialogUIID());
build.append("\" ");
}
if (isPropertyModified(cmp, PROPERTY_DISPOSE_WHEN_POINTER_OUT) && cmp instanceof com.codename1.ui.Dialog) {
com.codename1.ui.Dialog dlg = (com.codename1.ui.Dialog) cmp;
build.append("disposeWhenPointerOutOfBounds=\"");
build.append(dlg.isDisposeWhenPointerOutOfBounds());
build.append("\" ");
}
if (isPropertyModified(cmp, PROPERTY_DIALOG_POSITION) && cmp instanceof com.codename1.ui.Dialog) {
com.codename1.ui.Dialog dlg = (com.codename1.ui.Dialog) cmp;
if (dlg.getDialogPosition() != null) {
build.append("dialogPosition=\"");
build.append(dlg.getDialogPosition());
build.append("\" ");
}
}
build.append(">\n");
appendComponentXMLBody(containerInstance, cmp, build, res, indent + " ");
if (frm.getCommandCount() > 0 || frm.getBackCommand() != null) {
if (isPropertyModified(cmp, PROPERTY_COMMANDS) || isPropertyModified(cmp, PROPERTY_COMMANDS_LEGACY)) {
if (frm.getBackCommand() != null && !hasBackCommand(frm, frm.getBackCommand())) {
build.append("<command name=\"");
ActionCommand cmd = (ActionCommand) frm.getBackCommand();
if (exportToNewGuiBuilderMode) {
if (cmp.getComponentForm() != null) {
commandList.add(cmd);
cmd.putClientProperty("FORMNAME", cmp.getComponentForm().getName());
}
}
build.append(xmlize(cmd.getCommandName()));
build.append("\" ");
if (cmd.getIcon() != null) {
build.append("icon=\"");
build.append(xmlize(res.findId(cmd.getIcon())));
build.append("\" ");
}
if (cmd.getRolloverIcon() != null) {
build.append("rolloverIcon=\"");
build.append(xmlize(res.findId(cmd.getRolloverIcon())));
build.append("\" ");
}
if (cmd.getPressedIcon() != null) {
build.append("pressedIcon=\"");
build.append(xmlize(res.findId(cmd.getPressedIcon())));
build.append("\" ");
}
if (cmd.getDisabledIcon() != null) {
build.append("disabledIcon=\"");
build.append(xmlize(res.findId(cmd.getDisabledIcon())));
build.append("\" ");
}
build.append("id=\"");
build.append(cmd.getId());
build.append("\" ");
if (cmd.getAction() != null) {
build.append("action=\"");
build.append(xmlize(cmd.getAction()));
build.append("\" ");
if (cmd.getAction().equals("$Execute")) {
build.append("argument=\"");
build.append(xmlize(cmd.getArgument()));
build.append("\" ");
}
}
build.append("backCommand=\"");
build.append(frm.getBackCommand() == cmd);
build.append("\" />");
}
for (int iter = frm.getCommandCount() - 1; iter >= 0; iter--) {
ActionCommand cmd = (ActionCommand) frm.getCommand(iter);
if (exportToNewGuiBuilderMode) {
if (cmp.getComponentForm() != null) {
commandList.add(cmd);
cmd.putClientProperty("FORMNAME", cmp.getComponentForm().getName());
}
}
build.append("<command name=\"");
build.append(xmlize(cmd.getCommandName()));
build.append("\" ");
if (cmd.getIcon() != null) {
build.append("icon=\"");
build.append(xmlize(res.findId(cmd.getIcon())));
build.append("\" ");
}
if (cmd.getRolloverIcon() != null) {
build.append("rolloverIcon=\"");
build.append(xmlize(res.findId(cmd.getRolloverIcon())));
build.append("\" ");
}
if (cmd.getPressedIcon() != null) {
build.append("pressedIcon=\"");
build.append(xmlize(res.findId(cmd.getPressedIcon())));
build.append("\" ");
}
if (cmd.getDisabledIcon() != null) {
build.append("disabledIcon=\"");
build.append(xmlize(res.findId(cmd.getDisabledIcon())));
build.append("\" ");
}
build.append("id=\"");
build.append(cmd.getId());
build.append("\" ");
if (cmd.getAction() != null) {
build.append("action=\"");
build.append(xmlize(cmd.getAction()));
build.append("\" ");
if (cmd.getAction().equals("$Execute")) {
build.append("argument=\"");
build.append(xmlize(cmd.getArgument()));
build.append("\" ");
}
}
build.append("backCommand=\"");
build.append(frm.getBackCommand() == cmd);
build.append("\" />");
}
}
}
build.append(indent);
build.append("</component>\n");
} else {
if (!(cmp instanceof com.codename1.ui.list.ContainerList)) {
build.append(">\n");
appendComponentXMLBody(containerInstance, cmp, build, res, indent + " ");
build.append(indent);
build.append("</component>\n");
} else {
com.codename1.ui.list.ContainerList lst = ((com.codename1.ui.list.ContainerList) cmp);
if (isPropertyModified(cmp, PROPERTY_LIST_RENDERER) && lst.getRenderer() instanceof com.codename1.ui.list.GenericListCellRenderer) {
com.codename1.ui.list.GenericListCellRenderer g = (com.codename1.ui.list.GenericListCellRenderer) lst.getRenderer();
if (g.getSelectedEven() == null) {
build.append(" selectedRenderer=\"");
build.append(xmlize(g.getSelected().getName()));
build.append("\" unselectedRenderer=\"");
build.append(xmlize(g.getUnselected().getName()));
build.append("\" ");
} else {
build.append(" selectedRenderer=\"");
build.append(xmlize(g.getSelected().getName()));
build.append("\" unselectedRenderer=\"");
build.append(xmlize(g.getUnselected().getName()));
build.append(" selectedRendererEven=\"");
build.append(xmlize(g.getSelectedEven().getName()));
build.append("\" unselectedRendererEven=\"");
build.append(xmlize(g.getUnselectedEven().getName()));
build.append("\" ");
}
}
build.append(">\n");
appendComponentXMLBody(containerInstance, cmp, build, res, indent + " ");
build.append(indent);
build.append("</component>\n");
}
}
}
} else {
if (cmp instanceof com.codename1.ui.Label) {
com.codename1.ui.Label lbl = (com.codename1.ui.Label) cmp;
build.append("text=\"");
build.append(xmlize(lbl.getText()));
build.append("\" ");
if (isPropertyModified(cmp, PROPERTY_ALIGNMENT)) {
build.append("alignment=\"");
build.append(lbl.getAlignment());
build.append("\" ");
}
if (isPropertyModified(cmp, PROPERTY_ICON) && lbl.getIcon() != null) {
build.append("icon=\"");
build.append(xmlize(res.findId(lbl.getIcon())));
build.append("\" ");
}
if (lbl instanceof com.codename1.ui.Button) {
com.codename1.ui.Button button = (com.codename1.ui.Button) lbl;
if (isPropertyModified(cmp, PROPERTY_ROLLOVER_ICON) && button.getRolloverIcon() != null) {
build.append("rolloverIcon=\"");
build.append(xmlize(res.findId(button.getRolloverIcon())));
build.append("\" ");
}
if (isPropertyModified(cmp, PROPERTY_PRESSED_ICON) && button.getPressedIcon() != null) {
build.append("pressedIcon=\"");
build.append(xmlize(res.findId(button.getPressedIcon())));
build.append("\" ");
}
if (isPropertyModified(cmp, PROPERTY_DISABLED_ICON) && button.getDisabledIcon() != null) {
build.append("disabledIcon=\"");
build.append(xmlize(res.findId(button.getDisabledIcon())));
build.append("\" ");
}
if (isPropertyModified(cmp, PROPERTY_TOGGLE_BUTTON)) {
build.append("toggle=\"");
build.append(button.isToggle());
build.append("\" ");
}
} else {
if (lbl instanceof com.codename1.ui.Slider) {
com.codename1.ui.Slider sld = (com.codename1.ui.Slider) lbl;
if (isPropertyModified(cmp, PROPERTY_EDITABLE)) {
build.append("editable=\"");
build.append(sld.isEditable());
build.append("\" ");
}
if (isPropertyModified(cmp, PROPERTY_INFINITE)) {
build.append("infinite=\"");
build.append(sld.isInfinite());
build.append("\" ");
}
if (isPropertyModified(cmp, PROPERTY_SLIDER_THUMB) && sld.getThumbImage() != null) {
build.append("thumbImage=\"");
build.append(xmlize(res.findId(sld.getThumbImage())));
build.append("\" ");
}
if (isPropertyModified(cmp, PROPERTY_PROGRESS)) {
build.append("progress=\"");
build.append(sld.getProgress());
build.append("\" ");
}
if (isPropertyModified(cmp, PROPERTY_VERTICAL)) {
build.append("vertical=\"");
build.append(sld.isVertical());
build.append("\" ");
}
if (isPropertyModified(cmp, PROPERTY_INCREMENTS)) {
build.append("increments=\"");
build.append(sld.getIncrements());
build.append("\" ");
}
if (isPropertyModified(cmp, PROPERTY_MAX_VALUE)) {
build.append("maxValue=\"");
build.append(sld.getMaxValue());
build.append("\" ");
}
if (isPropertyModified(cmp, PROPERTY_MIN_VALUE)) {
build.append("minValue=\"");
build.append(sld.getMinValue());
build.append("\" ");
}
if (isPropertyModified(cmp, PROPERTY_RENDER_PERCENTAGE_ON_TOP)) {
build.append("renderPercentageOnTop=\"");
build.append(sld.isRenderPercentageOnTop());
build.append("\" ");
}
}
}
if (isPropertyModified(cmp, PROPERTY_RADIO_GROUP)) {
build.append("group=\"");
build.append(xmlize(((com.codename1.ui.RadioButton) cmp).getGroup()));
build.append("\" ");
}
if (isPropertyModified(cmp, PROPERTY_SELECTED)) {
build.append("selected=\"");
build.append(((com.codename1.ui.Button) cmp).isSelected());
build.append("\" ");
}
if (isPropertyModified(cmp, PROPERTY_GAP)) {
build.append("gap=\"");
build.append(lbl.getGap());
build.append("\" ");
}
if (isPropertyModified(cmp, PROPERTY_VERTICAL_ALIGNMENT)) {
build.append("verticalAlignment=\"");
build.append(lbl.getVerticalAlignment());
build.append("\" ");
}
if (isPropertyModified(cmp, PROPERTY_TEXT_POSITION)) {
build.append("textPosition=\"");
build.append(lbl.getTextPosition());
build.append("\" ");
}
} else {
if (cmp instanceof com.codename1.ui.TextArea) {
com.codename1.ui.TextArea txt = (com.codename1.ui.TextArea) cmp;
if (isPropertyModified(cmp, PROPERTY_VERTICAL_ALIGNMENT)) {
build.append("verticalAlignment=\"");
build.append(txt.getVerticalAlignment());
build.append("\" ");
}
if (isPropertyModified(cmp, PROPERTY_TEXT)) {
build.append("text=\"");
build.append(xmlize(txt.getText()));
build.append("\" ");
}
if (isPropertyModified(cmp, PROPERTY_TEXT_AREA_GROW)) {
build.append("growByContent=\"");
build.append(txt.isGrowByContent());
build.append("\" ");
}
if (isPropertyModified(cmp, PROPERTY_TEXT_CONSTRAINT)) {
build.append("constraint=\"");
build.append(txt.getConstraint());
build.append("\" ");
}
if (isPropertyModified(cmp, PROPERTY_TEXT_MAX_LENGTH)) {
build.append("maxSize=\"");
build.append(txt.getMaxSize());
build.append("\" ");
}
if (isPropertyModified(cmp, PROPERTY_EDITABLE)) {
build.append("editable=\"");
build.append(txt.isEditable());
build.append("\" ");
}
if (isPropertyModified(cmp, PROPERTY_ALIGNMENT)) {
build.append("alignment=\"");
build.append(txt.getAlignment());
build.append("\" ");
}
if (isPropertyModified(cmp, PROPERTY_HINT)) {
build.append("hint=\"");
build.append(xmlize(txt.getHint()));
build.append("\" ");
}
if (isPropertyModified(cmp, PROPERTY_HINT_ICON) && txt.getHintIcon() != null) {
build.append("hintIcon=\"");
build.append(xmlize(res.findId(txt.getHintIcon())));
build.append("\" ");
}
if (isPropertyModified(cmp, PROPERTY_COLUMNS)) {
build.append("columns=\"");
build.append(txt.getColumns());
build.append("\" ");
}
if (isPropertyModified(cmp, PROPERTY_ROWS)) {
build.append("rows=\"");
build.append(txt.getRows());
build.append("\" ");
}
} else {
if (cmp instanceof com.codename1.ui.List) {
com.codename1.ui.List lst = (com.codename1.ui.List) cmp;
if (isPropertyModified(cmp, PROPERTY_ITEM_GAP)) {
build.append("itemGap=\"");
build.append(lst.getItemGap());
build.append("\" ");
}
if (isPropertyModified(cmp, PROPERTY_LIST_FIXED)) {
build.append("fixedSelection=\"");
build.append(lst.getFixedSelection());
build.append("\" ");
}
if (isPropertyModified(cmp, PROPERTY_LIST_ORIENTATION)) {
build.append("orientation=\"");
build.append(lst.getOrientation());
build.append("\" ");
}
if (isPropertyModified(cmp, PROPERTY_HINT)) {
build.append("hint=\"");
build.append(xmlize(lst.getHint()));
build.append("\" ");
}
if (isPropertyModified(cmp, PROPERTY_HINT_ICON) && lst.getHintIcon() != null) {
build.append("hintIcon=\"");
build.append(xmlize(res.findId(lst.getHintIcon())));
build.append("\" ");
}
if (isPropertyModified(cmp, PROPERTY_LIST_RENDERER) && lst.getRenderer() instanceof com.codename1.ui.list.GenericListCellRenderer) {
com.codename1.ui.list.GenericListCellRenderer g = (com.codename1.ui.list.GenericListCellRenderer) lst.getRenderer();
if (g.getSelectedEven() == null) {
build.append(" selectedRenderer=\"");
build.append(xmlize(g.getSelected().getName()));
build.append("\" unselectedRenderer=\"");
build.append(xmlize(g.getUnselected().getName()));
build.append("\" ");
} else {
build.append(" selectedRenderer=\"");
build.append(xmlize(g.getSelected().getName()));
build.append("\" unselectedRenderer=\"");
build.append(xmlize(g.getUnselected().getName()));
build.append(" selectedRendererEven=\"");
build.append(xmlize(g.getSelectedEven().getName()));
build.append("\" unselectedRendererEven=\"");
build.append(xmlize(g.getUnselectedEven().getName()));
build.append("\" ");
}
}
}
}
}
build.append(">\n");
appendComponentXMLBody(containerInstance, cmp, build, res, indent + " ");
build.append(indent);
build.append("</component>\n");
}
}
Aggregations