/******************************************************************************* * Copyright (c) 2007, 2014 compeople AG and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * compeople AG - initial API and implementation *******************************************************************************/ package org.eclipse.riena.internal.ui.ridgets.swt; import org.eclipse.core.databinding.observable.Realm; import org.eclipse.jface.databinding.swt.SWTObservables; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.layout.RowLayout; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Text; import org.eclipse.riena.core.test.RienaTestCase; import org.eclipse.riena.core.test.collect.UITestCase; import org.eclipse.riena.core.util.ReflectionUtils; import org.eclipse.riena.ui.ridgets.ITextRidget; /** * Test for the MarkerSupport in a shared view. When a view is shared several * Ridgets share the same widget. */ @UITestCase public class TextRidgetSharedViewTest extends RienaTestCase { private Shell shell; private Text widget; private ITextRidget textRidget1; private ITextRidget textRidget2; @Override protected void setUp() throws Exception { super.setUp(); final Display display = Display.getDefault(); final Realm realm = SWTObservables.getRealm(display); assertNotNull(realm); ReflectionUtils.invokeHidden(realm, "setDefault", realm); shell = new Shell(SWT.SYSTEM_MODAL | SWT.ON_TOP); shell.setLayout(new RowLayout(SWT.VERTICAL)); widget = new Text(shell, SWT.NONE); textRidget1 = new TextRidget(); textRidget1.setUIControl(widget); textRidget2 = new TextRidget(); shell.setSize(130, 100); shell.setLocation(0, 0); shell.open(); } @Override protected void tearDown() throws Exception { textRidget1 = null; textRidget2 = null; widget = null; shell.dispose(); shell = null; super.tearDown(); } /** * Test for bug 269349. */ public void testMandatoryMarkersInSharedViews() throws Exception { final Color normalBackground = widget.getBackground(); textRidget1.setMandatory(true); textRidget2.setMandatory(true); final Color mandatoryBackground = widget.getBackground(); assertFalse(normalBackground.equals(mandatoryBackground)); assertEquals(mandatoryBackground, widget.getBackground()); textRidget1.setUIControl(null); textRidget2.setUIControl(widget); assertEquals(mandatoryBackground, widget.getBackground()); textRidget2.setText("Text"); assertEquals(normalBackground, widget.getBackground()); textRidget2.setUIControl(null); textRidget1.setUIControl(widget); assertEquals(mandatoryBackground, widget.getBackground()); textRidget1.setText("Text"); assertEquals(normalBackground, widget.getBackground()); } }