use of org.entirej.applicationframework.rwt.utils.EJRWTItemRendererVisualContext in project rap by entirej.
the class EJRWTComboItemRenderer method createComponent.
@Override
public void createComponent(Composite composite) {
_actionControl = new EJRWTAbstractActionCombo(composite) {
private static final long serialVersionUID = 2592484612013403481L;
@Override
public Combo createCombo(Composite parent) {
String alignmentProperty = _rendererProps.getStringProperty(EJRWTTextItemRendererDefinitionProperties.PROPERTY_ALIGNMENT);
if (alignmentProperty == null) {
alignmentProperty = _rendererProps.getStringProperty("ALLIGNMENT");
}
String hint = _screenItemProperties.getHint();
int style = SWT.READ_ONLY;
style = getComponentStyle(alignmentProperty, style);
_comboField = new Combo(parent, style);
_comboField.setData(EJ_RWT.CUSTOM_VARIANT, EJ_RWT.CSS_CV_ITEM_COMBOBOX);
String customCSSKey = _rendererProps.getStringProperty(EJRWTButtonItemRendererDefinitionProperties.PROPERTY_CSS_KEY);
if (customCSSKey != null && customCSSKey.trim().length() > 0) {
_comboField.setData(EJ_RWT.CUSTOM_VARIANT, customCSSKey);
}
_comboViewer = new ComboViewer(_comboField);
if (hint != null && hint.trim().length() > 0) {
_comboField.setToolTipText(hint);
}
_comboField.setData(_item.getReferencedItemProperties().getName());
if (_visibleItemCount > 5) {
_comboField.setVisibleItemCount(_visibleItemCount);
}
_comboField.addFocusListener(EJRWTComboItemRenderer.this);
_comboViewer.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object element) {
if (element instanceof ComboBoxValue) {
ComboBoxValue value = (ComboBoxValue) element;
return value.getItemValueAsString();
}
return "";
}
});
_comboViewer.setContentProvider(new ArrayContentProvider());
_comboViewer.addSelectionChangedListener(new ISelectionChangedListener() {
@Override
public void selectionChanged(SelectionChangedEvent event) {
if (!_activeEvent)
return;
Object old = _baseValue;
if (isValid()) {
ComboBoxValue value = getComboBoxValue();
_item.itemValueChaged(value.getItemValue());
if (value != null) {
value.populateReturnItems(_item.getBlock().getBlockController(), _item.getScreenType());
}
setMandatoryBorder(_mandatory);
} else {
_isValid = true;
}
_item.executeActionCommand();
}
});
return _comboField;
}
@Override
public Control createActionLabel(Composite parent) {
Label label = new Label(parent, SWT.NONE);
label.setImage(EJRWTImageRetriever.get(EJRWTImageRetriever.IMG_FIND_LOV));
label.addFocusListener(EJRWTComboItemRenderer.this);
label.addMouseListener(new MouseListener() {
@Override
public void mouseUp(MouseEvent arg0) {
_item.getItemLovController().displayLov(EJLovDisplayReason.LOV);
}
@Override
public void mouseDown(MouseEvent arg0) {
}
@Override
public void mouseDoubleClick(MouseEvent arg0) {
}
});
final EJFrameworkExtensionProperties rendererProp = EJCoreProperties.getInstance().getApplicationDefinedProperties();
final EJFrameworkExtensionProperties propertyGroup = rendererProp.getPropertyGroup(EJRWTSingleRecordBlockDefinitionProperties.ACTION_GROUP);
String lovKey = "SHIFT+ARROW_DOWN";
if (propertyGroup != null) {
lovKey = propertyGroup.getStringProperty(EJRWTSingleRecordBlockDefinitionProperties.ACTION_LOV_KEY);
}
if (lovKey == null) {
lovKey = "SHIFT+ARROW_DOWN";
}
label.setData(EJ_RWT.ACTIVE_KEYS, new String[] { lovKey });
getComboControl().setData(EJ_RWT.ACTIVE_KEYS, new String[] { lovKey });
addKeyListener(new KeyListener() {
@Override
public void keyReleased(KeyEvent arg0) {
if ((arg0.stateMask & SWT.SHIFT) != 0 && arg0.keyCode == SWT.ARROW_DOWN && isLovActivated()) {
_item.getItemLovController().displayLov(EJLovDisplayReason.LOV);
}
}
@Override
public void keyPressed(KeyEvent arg0) {
}
});
return label;
}
};
_visualContext = new EJRWTItemRendererVisualContext(_comboField.getBackground(), _comboField.getForeground(), _comboField.getFont());
_mandatoryDecoration = new ControlDecoration(_actionControl, SWT.TOP | SWT.LEFT);
_errorDecoration = new ControlDecoration(_actionControl, SWT.TOP | SWT.LEFT);
_mandatoryDecoration.setImage(getDecorationImage(FieldDecorationRegistry.DEC_REQUIRED));
_mandatoryDecoration.setShowHover(true);
_mandatoryDecoration.setDescriptionText(_screenItemProperties.getLabel() == null || _screenItemProperties.getLabel().isEmpty() ? "Required Item" : String.format("%s is required", _screenItemProperties.getLabel()));
if (_isValid) {
_errorDecoration.hide();
}
if (message != null) {
setMessage(message);
}
_mandatoryDecoration.hide();
refreshCombo();
setInitialValue(_baseValue);
}
use of org.entirej.applicationframework.rwt.utils.EJRWTItemRendererVisualContext in project rap by entirej.
the class EJRWTTextItemRenderer method createComponent.
@Override
public void createComponent(Composite composite) {
String alignmentProperty = _rendererProps.getStringProperty(EJRWTTextItemRendererDefinitionProperties.PROPERTY_ALIGNMENT);
if (alignmentProperty == null) {
alignmentProperty = _rendererProps.getStringProperty("ALLIGNMENT");
}
String hint = _screenItemProperties.getHint();
if (_displayValueAsLabel) {
labelField = new EJRWTAbstractLabel(composite) {
@Override
public Label createLabel(Composite parent) {
return _valueLabel = newVlaueLabel(parent);
}
@Override
public Control createCustomActionLabel(Composite parent) {
// TODO Auto-generated method stub
return null;
}
@Override
public Control createActionLabel(Composite parent) {
// TODO Auto-generated method stub
return null;
}
};
_valueLabel.setData(_itemProperties.getName());
_valueLabel.setData(EJ_RWT.CUSTOM_VARIANT, getCSSKey());
String customCSSKey = _rendererProps.getStringProperty(EJRWTButtonItemRendererDefinitionProperties.PROPERTY_CSS_KEY);
if (customCSSKey != null && customCSSKey.trim().length() > 0) {
_valueLabel.setData(EJ_RWT.CUSTOM_VARIANT, customCSSKey);
}
if (hint != null && hint.trim().length() > 0) {
_valueLabel.setToolTipText(hint);
}
setValueLabelAlign(alignmentProperty);
_visualContext = new EJRWTItemRendererVisualContext(_valueLabel.getBackground(), _valueLabel.getForeground(), _valueLabel.getFont());
setInitialValue(_baseValue);
} else {
final String alignmentProp = alignmentProperty;
_actionControl = new EJRWTAbstractActionText(composite) {
@Override
public Text createText(Composite parent) {
int style = SWT.BORDER;
if (_displayValueAsProtected) {
style = style | SWT.PASSWORD;
}
_textField = newTextField(parent, getComponentStyle(alignmentProp, style));
_textField.setData(EJ_RWT.CUSTOM_VARIANT, getCSSKey());
String customCSSKey = _rendererProps.getStringProperty(EJRWTButtonItemRendererDefinitionProperties.PROPERTY_CSS_KEY);
if (customCSSKey != null && customCSSKey.trim().length() > 0) {
_textField.setData(EJ_RWT.CUSTOM_VARIANT, customCSSKey);
}
return _textField;
}
@Override
public Control createCustomActionLabel(Composite parent) {
return createCustomButtonControl(parent);
}
@Override
public Control createActionLabel(Composite parent) {
Label label = new Label(parent, SWT.NONE);
label.setImage(EJRWTImageRetriever.get(EJRWTImageRetriever.IMG_FIND_LOV));
label.addFocusListener(EJRWTTextItemRenderer.this);
label.addMouseListener(new MouseListener() {
private static final long serialVersionUID = 529634857284996692L;
@Override
public void mouseUp(MouseEvent arg0) {
_item.getItemLovController().displayLov(EJLovDisplayReason.LOV);
}
@Override
public void mouseDown(MouseEvent arg0) {
}
@Override
public void mouseDoubleClick(MouseEvent arg0) {
}
});
final EJFrameworkExtensionProperties rendererProp = EJCoreProperties.getInstance().getApplicationDefinedProperties();
final EJFrameworkExtensionProperties propertyGroup = rendererProp.getPropertyGroup(EJRWTSingleRecordBlockDefinitionProperties.ACTION_GROUP);
String lovKey = "SHIFT+ARROW_DOWN";
if (propertyGroup != null) {
lovKey = propertyGroup.getStringProperty(EJRWTSingleRecordBlockDefinitionProperties.ACTION_LOV_KEY);
}
if (lovKey == null) {
lovKey = "SHIFT+ARROW_DOWN";
}
String[] keys = new String[] { lovKey, "ENTER", "RETURN", "CR" };
label.setData(EJ_RWT.ACTIVE_KEYS, keys);
getTextControl().setData(EJ_RWT.ACTIVE_KEYS, keys);
addKeyListener(new KeyListener() {
@Override
public void keyReleased(KeyEvent arg0) {
if ((arg0.stateMask & SWT.SHIFT) != 0 && arg0.keyCode == SWT.ARROW_DOWN && isLovActivated()) {
_item.getItemLovController().displayLov(EJLovDisplayReason.LOV);
}
if (arg0.keyCode == 13 && (SWT.MULTI != (_textField.getStyle() & SWT.MULTI) || (arg0.stateMask & SWT.CONTROL) != 0)) {
commitValue();
}
}
@Override
public void keyPressed(KeyEvent arg0) {
}
});
return label;
}
};
if (_maxLength > 0) {
_textField.setTextLimit(_maxLength);
}
if (hint != null && hint.trim().length() > 0) {
_textField.setToolTipText(hint);
}
_visualContext = new EJRWTItemRendererVisualContext(_textField.getBackground(), _textField.getForeground(), _textField.getFont());
_textField.setData(_item.getReferencedItemProperties().getName());
_textField.addFocusListener(this);
_mandatoryDecoration = new ControlDecoration(_actionControl, SWT.TOP | SWT.LEFT);
_errorDecoration = new ControlDecoration(_actionControl, SWT.TOP | SWT.LEFT);
_errorDecoration.setImage(getDecorationImage(FieldDecorationRegistry.DEC_ERROR));
_mandatoryDecoration.setImage(getDecorationImage(FieldDecorationRegistry.DEC_REQUIRED));
_mandatoryDecoration.setShowHover(true);
_mandatoryDecoration.setDescriptionText(_screenItemProperties.getLabel() == null || _screenItemProperties.getLabel().isEmpty() ? "Required Item" : String.format("%s is required", _screenItemProperties.getLabel()));
if (_isValid) {
_errorDecoration.hide();
}
if (message != null) {
setMessage(message);
}
_mandatoryDecoration.hide();
_textField.addModifyListener(_modifyListener);
// TODO: Move to client side validation on Rap 2.4
if (_valueCase != null && _valueCase != VALUE_CASE.DEFAULT) {
_textField.addVerifyListener(new VerifyListener() {
@Override
public void verifyText(VerifyEvent event) {
String caseValue = toCaseValue(event.text);
if (!event.text.equals(caseValue)) {
event.text = caseValue;
}
}
});
}
setInitialValue(_baseValue);
_textField.setMessage(defaultMessage == null ? "" : defaultMessage);
setMessage(message);
}
}
Aggregations