/**
* Copyright 2008-2016 Qualogy Solutions B.V.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.qualogy.qafe.mgwt.client.ui.renderer;
import com.google.gwt.user.client.ui.UIObject;
import com.qualogy.qafe.mgwt.client.activities.AbstractActivity;
import com.qualogy.qafe.mgwt.client.ui.component.QDropDown;
import com.qualogy.qafe.mgwt.client.vo.ui.ComponentGVO;
import com.qualogy.qafe.mgwt.client.vo.ui.DropDownGVO;
import com.qualogy.qafe.mgwt.client.vo.ui.DropDownItemGVO;
public class DropDownRenderer extends AbstractTextComponentRenderer {
public UIObject render(ComponentGVO component, String owner, String uuid, String parent, String context, AbstractActivity activity) {
UIObject widget = null;
if (component instanceof DropDownGVO) {
DropDownGVO dropDownGVO = (DropDownGVO)component;
QDropDown dropDown = new QDropDown();
init(dropDownGVO, dropDown, owner, uuid, parent, context, activity);
widget = dropDown;
registerComponent(dropDownGVO, dropDown, owner, parent, context);
}
return widget;
}
@Override
protected void init(ComponentGVO component, UIObject widget, String owner, String uuid, String parent, String context, AbstractActivity activity) {
super.init(component, widget, owner, uuid, parent, context, activity);
DropDownGVO dropDownGVO = (DropDownGVO)component;
QDropDown dropDown = (QDropDown)widget;
renderChildren(dropDownGVO, dropDown, uuid, parent, context);
}
private void renderChildren(DropDownGVO component, QDropDown widget, String uuid, String parent, String context) {
String emptyItemDisplayname = component.getEmptyItemDisplayName();
String emptyItemValue = component.getEmptyItemValue();
if ((emptyItemDisplayname != null) || (emptyItemValue != null)) {
String emptyItemMessageKey = component.getEmptyItemMessageKey();
if (emptyItemMessageKey != null) {
emptyItemDisplayname = emptyItemMessageKey;
}
emptyItemValue = (emptyItemValue != null) ? emptyItemValue : "";
widget.setEmptyItem(emptyItemDisplayname, emptyItemValue);
}
DropDownItemGVO[] dropDownItems = component.getDropDownItems();
if (dropDownItems != null) {
for (int i=0; i<dropDownItems.length; i++) {
DropDownItemGVO dropDownItemGVO = dropDownItems[i];
if (dropDownItemGVO != null) {
String displayname = dropDownItemGVO.getDisplayname();
String value = dropDownItemGVO.getValue();
widget.addItem(displayname, value);
Boolean selected = dropDownItemGVO.getSelected();
if (selected) {
widget.setSelected(value);
}
}
}
}
}
}