Skip to main content
AgeCommit message (Collapse)AuthorFilesLines
2016-08-11Increment version for RAP 3.2.0Markus Knauer28-133/+133
All MANIFEST.MF, pom.xml, feature.xml, .product, and various other files need to be updated to the new incremented version number of RAP 3.2. Change-Id: I8e5589216ffd9953d9dd56bcbeb98f1d104db4c0
2016-07-27Show GridColumnGroup chevron only if TOGGLE style is setIvan Furnadjiev3-4/+15
In Nebula Grid the chevron icon is not shown on GridColumnGroup if TOGGLE style flag is not set. Change-Id: Ic9357b9c6ea15d3a034b9349374e34c3b5556563
2016-07-04Fix Grid vertical scrollbar is shown unnecessarilyIvan Furnadjiev1-1/+9
The implementation of Grid.js#_getLastPageRowCount does not use last visible item, but last root item. As a result the vertical scrollbar is shown unnecessarily in some cases. 496261: VerticalScrollBar truncates content when using GridTreeViewer Change-Id: I89607f37c0abd27139011decd32ee71ebb33fd3c
2016-07-01Render Grid indentionWidth property at runtimeIvan Furnadjiev5-7/+21
In Tree/Table indentionWidth property doesn't change at runtime. It's rendered only once when widget is created. As Nebula Grid is represented as tree on the client a non zero indention width leads to visual offset of item text/checkbox in the first column when there is no subitems. Change-Id: I7952993c00ab2fa549dc2e73c90cee43665e1b2b
2016-06-21[493870] Propagate ThreadDeath to threads waiting for RunnableLockWojtek Polcwiartek1-118/+119
Threads waiting for the RunnableLock need to get informed about closing the UIThread. Bug: Change-Id: I46933b2f1d0ba80bc34452817309cb1827b58688 Signed-off-by: Wojtek Polcwiartek <>
2016-06-20Fix ClassCastException when ToolItem disabled state is styledIvan Furnadjiev2-2/+18
To obtain the ToolItem themeable properties, ToolBarThemeAdapter is used. As both ToolItem and ToolBar support "disabled" state, it's possible to run into ClassCastException in ControlThemeAdapterImpl#configureMatcher, where the "disabled" control constraint is defined. Add instance check in ControlThemeAdapterImpl#configureMatcher to prevent ClassCastException. Add separate "disabled" constraint for ToolItems in ToolBarThemeAdapter. 496349: ClassCastException in ControlThemeAdapterImpl: ToolItem cannot be cast to Control Change-Id: Ib306915f2e373ae2e82596cc9a1a0e4404913a32
2016-05-27Fix client crash when Browser is created with V/H_SCROLL style flagsIvan Furnadjiev1-4/+15
When scrollable widget is created with V/H_SCROLL style flags, a ScrollBar widget is created/rendered by the protocol. As client-side browser widget can't have children (doesn't extend Parent), adding scrollbars to it leads to a crash. Browser widget is based on HTML iframe and doesn't have a separate, managed by the server scrollbars. Clear Browser V/H_SCROLL style bits if set. 494759: Browser with style flag SWT.H_SCROLL or SWT.V_SCROLL fails Change-Id: I38f397da679eff212864dcfdfeec8c714a07c3e3
2016-05-23Ensure correct MANIFEST.MF is used in SWT#readBundleVersionIvan Furnadjiev1-16/+17
In some cases wrong MANIFEST.MF is used when SWT version is determined. Load and get bundle version from "org.eclipse.rap.rwt" MANIFEST.MF only. Change-Id: Ie046c5fa738ee597a9298615c049bd175ea2e372
2016-05-11Extend ErrorBox themeable propertiesElshad Seyidmammadov4-3/+32
Make font, color and background color properties of description area themeable. 342140: Customizable error message box Change-Id: I0b3a477571e4c4e96736dfc60657318ac2bfb361 Signed-off-by: Elshad Seyidmammadov <>
2016-05-11Grid scrolling doesn't work correctly in mobile browsersElshad Seyidmammadov1-19/+35
In Mobile browsers when grid-view scrolling is enabled, the grid-view cannot be scrolled correctly by touch moving. The scrolling position calculated wrongly. Although Grid item position properties work with indexes, MobileWebkitSupport updated them with pixels. Convert pixels to index in MobileWebkitSupport for GridRowContainer. Change some test result variables in MobileWebkitSupportTest, which tested with pixels. Change-Id: I8ec91b59104816d897f38bb659333a1f341a9036 Signed-off-by: Elshad Seyidmammadov <>
2016-05-10Fix app crash when widget is reparented and disposed in the same timeIvan Furnadjiev1-1/+3
Reparent and dispose a control in the same request leads to app crash (org.eclipse.swt.SWTException: Widget is disposed), when we render the parent in DisplayLCA#renderReparentControls. Add a check for disposed control in DisplayLCA#renderReparentControls. Change-Id: Ic9d819f1b73b8d6ad897a88a79841abdb63c0e59
2016-05-10Fix FontDialog color selectionIvan Furnadjiev1-1/+1
There is a typo in FontDialog#openColorDialog method. Instead of colling open() method of the ColorDialog it opens itself again. Change-Id: Ied36572aa9ade11dda2e8f034f14abaaa37dfd42
2016-05-09Add RWT version to rap-client.js pathIvan Furnadjiev2-6/+38
Now the RAP JS client file is registered at: "rwt-resources/<rwt version>/rap-client.js". Read SWT (RWT) version from RWT bundle MANIFEST.MF. 439008: RAP javascript url should be unique per version Change-Id: Iac891421401c6336e985e56b01c39fab1f2ee099
2016-05-03Fix missing data when columns are used in DropDown3.1.0-M7Ivan Furnadjiev1-0/+5
In order to render the text in GridRow cell, cellOrder property must me set in the Grid config (see GridRowLayout#_computeAllCells). Otherwize, only the text for the first column is shown. Add cellOrder property to Grid config when columns are set on DropDown. Change-Id: I23badf47b05ac0e775ff0f03cda5e7be95f73780
2016-05-03Use the "wheel" DOM event instead of "mousewheel"Tim Buschtoens3-15/+10
"wheel" is the actual standard and supported by all current browser. Keep support for "mousewheel" in case some older browser needs it. The exotic "DOMMouseScroll" from old FireFox is not longer needed. Change-Id: I79726f4ac0bd050eb831d86b1804dda4a6c72447
2016-05-03Support base URL in ServiceManagerImplIvan Furnadjiev2-3/+14
ServiceManager#getServiceHandlerUrl(String) returns absolute URL (see bug 437211). If the application is deployed behind url rewriting proxy, the URL segment added by the proxy is missing from service handler URL. Respect "org.eclipse.rap.rwt.serviceHandlerBaseURL" system property in ServiceManagerImpl. 492175: FileDialog doesn't work behind proxy Change-Id: I10a5410f198441b53d71b85d8062b9992c59b8ce
2016-05-03Fix IOBE on empty virtual GridIvan Furnadjiev1-3/+3
The method Grid#doRedraw fails with empty virtual Grid. Add a check for available items. 492780: Empty Virtual Nebula Grid throws exception Change-Id: I7677264a53f1a87d651aa173476ba8d000b2dbb8
2016-04-28Website-like scrolling don't work in mobile browsersElshad Seyidmammadov1-1/+9
In Mobile browsers although overflow is enabled, the page cannot be scrolled by touch moving. Client document scrolling is not taken into account. To fix the issue, enable scrolling by checking client document overflow property. Change-Id: Iea1948eded1775f811e5c78cdc4624fc4c4c258e Signed-off-by: Elshad Seyidmammadov <>
2016-04-28Grid scrolling doesn't work in mobile browsersElshad Seyidmammadov1-6/+6
In Mobile browsers when grid-view scrolling is enabled, the grid-view cannot be scrolled by touch moving. Scroll element was got from GridRow instead of GridRowContainer. To fix the issue, replace GridRow with the GridRowContainer. Change-Id: I6fcd206152e602c89910efe9f16f23b727e7fdd2 Signed-off-by: Elshad Seyidmammadov <>
2016-04-28Disable DOM element focusing in some widgetsIvan Furnadjiev7-7/+14
Most of the browsers auto-scroll DOM element into view, when it's focused. This leads to unwanted app scroll, when website-like scrolling is eanbled. Set widget enableElementFocus property to false for Grid, List, Composite, Group, ScrolledComposite, TabFolder and CTabfolder. Change-Id: I4fdc64e429081b5dc6673143223cef3449afc2b5
2016-04-26Fix Location#get function to work with body element in IEElshad Seyidmammadov1-7/+7
When Location#get is called for body element with "scroll" mode in IE, the returned value is not correct (the scroll offset is not taken into account). In IE body.scrollTop/Left always return zero. To fix the issue, for body element only, use rwt.html.Viewport.getScrollTop/Left instead. Change-Id: I7207797da1117b39a120c0e51d6f608c8c1a971a Signed-off-by: Elshad Seyidmammadov <>
2016-04-25Adjust shell drag offsetElshad Seyidmammadov1-14/+15
When website-like scrolling is enabled and there is a scroll offset, dragging shell is shifted from the mouse pointer. To avoid the shifting, took scroll offset into account while shell position is calculated. Change-Id: Ie66d13f8d2e539a4616b90125b814536231b5a3a Signed-off-by: Elshad Seyidmammadov <>
2016-04-25Fix mouse event pageX/Y in Firefox when there is a scroll offsetIvan Furnadjiev1-3/+5
In Firefox the mouse dom event pageX/pageY properties does not include page scroll offset. It behaves like clientX/Y properties. Calculate pageX/Y from clientX/Y properties and scrollX/Y offset. Change-Id: Ic4b40254ba907efef946ce4849097895410b596c
2016-04-25Position JFace Dialogs in display center instead of parent shell centerElshad Seyidmammadov1-2/+17
When website-like scrolling enabled, usually the parent Shell size is bigger in height than the Display (browser window) height. To avoid opening of blocking shell (Dialog) outside viewport, the dialogs must be positioned in the middle of Display (viewport). Change-Id: Ied9ff208a09f739a3f4bdfb74ecdb077d1a61c57 Signed-off-by: Elshad Seyidmammadov <>
2016-04-22Position SWT Dialogs in display center instead of parent shell centerElshad Seyidmammadov4-12/+12
When website-like scrolling enabled, usually the parent Shell size is bigger in height than the Display (browser window) height. To avoid opening of blocking shell (Dialog) outside viewport, the dialogs must be positioned in the middle of Display (viewport). Change-Id: I1abc4bd9b593070215185bf3972a11f2c7d12ef8 Signed-off-by: Elshad Seyidmammadov <>
2016-04-21Don't scroll into view focused controls bigger than the viewportIvan Furnadjiev1-1/+6
When website-like scrolling is enabled, focusing by mouse of controls with bigger dimensions than the viewport (like main shell or navigation table) leads to unwanted scrolling as Widget.js#scrollIntoView is called. Scroll into view only controls that fit into the viewport. Change-Id: Ic1a7759b19d5908be5b1e300b84417e9e6c78b87
2016-04-20Fix dropdown position when website-like scrolling is enabledIvan Furnadjiev1-3/+4
DropDown.js#renderPosition doesn't respect scroll offset. Thus, dropdown position is wrong when there is no enough space. Use viewport height and scroll offset instead of document height in DropDown.js#renderPosition. Change-Id: I0ce038d0b767a027a5b78ea31994508af4f9668b
2016-04-20Fix rwt.html.Viewport#getScrollLeft/Top in FirefoxIvan Furnadjiev1-3/+5
In Firefox window.pageX/YOffset property always return zero. In IE11 document.body.scrollLeft/Top always return zero. Use one or another. Change-Id: I3cdd4a8ec005a9eedc5cd519003e415562cf8d8e
2016-04-20Fix widget tooltip to respect scroll offsetIvan Furnadjiev1-34/+45
When website-like scrolling is enabled the widget tooltip is not positioned / fallback mode not calculated correctly, because scroll offset is not respected. Refactor WidgetToolTip.js to use viewport bounds (with scroll offset) instead of document dimensions. Change-Id: Ie85e2be2c158483c6ff0271e42f1afaedf008b8a
2016-04-19Add support for website-like scrollingIvan Furnadjiev7-13/+82
Native browser page scrolling is useful for website-like RAP applications. To enable it, WebClient#PAGE_OVERFLOW entry point property must be set with one of the values "scroll", "scrollX" or "scrollY". Set blocking overlay and modal shells (dialogs) CSS position to "fixed" to prevent them from scrolling. Bug 355852 - Support website-like scrolling Change-Id: I9f409e1bbf4bfa100471656b334b201397630eb2
2016-04-13Fix client crash in case of missing operations arrayIvan Furnadjiev1-2/+2
In some cases, as outlined in bug 390711 comment #4, the protocol JSON message could only have a head object. In RAP 2.3 such messages are processed correctly, but in RAP 3.1 they lead to client crash. Make operations array in JSON protocol message optional. Change-Id: Ie1464fe206c4cf4d391a1ab8c69eed2bc7e74823
2016-04-07Fix text selection in Browser widget under IEIvan Furnadjiev2-2/+3
To suppress text selection a non standard property "-user-select" is used. According to MDN, none/text/all values are supported. To enable text selection after it is disabled, this property must be reset to "text". Enable text selection in Browser widget. Render "text" instead of empty string when text selection is eanbled. 484637: Marking and copying text from Browser widget does not work in IE Change-Id: I4af35554a11139f86a4f39d59d7aae9f9d7ef828
2016-04-06Make the ErrorBox themeableElshad Seyidmammadov4-8/+95
Add new CSS elements ErrorBox and ErrorBox-Titlebar. Make font, color and background color titlebar properties themeable. Make error box border themeable. 342140: Customizable error message box Change-Id: I0a0d73f8181421fdaed79fba71c0bc41e7705c4c Signed-off-by: Elshad Seyidmammadov <>
2016-04-05Provide OSGi and p2 capabilities to detect RWT presenceMarkus Knauer2-0/+12
Provide a capability in the bundle manifest including a version that allows OSGi to detect the presence of RWT in the runtime, and to wire other bundles accordingly. Add p2 metadata that allows p2 to decide in a similar way as OSGi which installable units need to be taken into account. Bug 490922 - Provide capability in RWT bundle and require it in other RAP bundles Bug: Change-Id: I29bab69ffedf663e95e6790ba5940f69f867ae96 Signed-off-by: Markus Knauer <>
2016-04-01Use Java 8 for org.eclipse.rap.jface.databindingIvan Furnadjiev3-8/+8
In Neon platform, bundles - org.eclipse.core.databinding - - org.eclipse.core.databinding.observable require Java 8. To avoid compilation error we have to rise the execution environment of org.eclipse.rap.jface.databinding to Java 8 too. Change-Id: I57d0fbfc14622edc954e8047b20dbc4e94be3866
2016-03-24Show a dialog-like box for client/server errorsElshad Seyidmammadov7-22/+48
For some errors we show a dialog-like box with an option to restart the application, for other a white page with details about client/server crash without an option to restart the application. It's better to handle all the errors in the same way. In case of client/server error, where the details about the crash are important, we add a separate "Details" button to the error box to show them. Update all places on the client to use the new error box for client/server errors. Add additional message for client error description. Change-Id: I09477ce16e0e3caccbbc8f62dc8b938fac1965d5 Signed-off-by: Elshad Seyidmammadov <>
2016-03-22Fix duplicate focus events in some cases3.1.0-M6Ivan Furnadjiev1-5/+5
On the client we have two types of focus events - focusin/focusout that bubble to the parent objects and focus/blur that not. Using a listener for focusin/focusout events in HandlerUtil.js leads to duplicate notify operations when focus listener is attach to both parent and child (see Target.js#_dispatchEvent). Use non-bubbling focus/blur events instead of focusin/focusout in HandlerUtil.js Adjust related JS tests. 489922: Events lost focus and get focus are fired two times Change-Id: I2dce96eb3f776f998fe510b2a0bbf528e29a70af
2016-03-11Fix missing mouse up event outside controlIvan Furnadjiev1-3/+7
The idea of ControlOperationHandler#allowMouseEvent is to suppress mouse events witch are not fired in SWT - mouse event on control border, Table/Tree header or Shell title/menu bars. In SWT is possible to have a mouse up event with negative to the Control x and y (described in bug 488755 description). The implementation of ControlOperationHandler#allowMouseEvent must suppress by default only mouse events on Control border. 488755: Missing Event type MouseUp Change-Id: I9c6bf41f81c824c6718a5f5e5910f9a1effbe412
2016-03-03Fix over state not applied on Composite if child is hoveredIvan Furnadjiev1-9/+5
In OverStateMixin there is a target check. It prevents Composite from getting over state when child widget is hovered. This check was probably introduced when Label was based on qooxdoo Atom (had subwidgets). Remove target check in OverStateMixin. 482702: Child does not inherit "hover" CSS property from parent Composite Change-Id: I2bf309b522aacfbf127ae3ef0029047174fcb1ec
2016-02-29Enable class/id attributes in MarkupValidatorIvan Furnadjiev1-26/+27
Font Awesome [1] requires class/id attributes on some HTML tags. As style attribute is currently supported on all elements, there is no reason to reject class and id. Add class/id attributes to all elements with enabled style attribute. [1] Change-Id: I258607a05edd318348e6f5896c6bf6d0ddc7fd86
2016-02-29Don't stop mouse event on HTML select element in FirefoxKarsten Panier1-1/+1
EventHandlerUtil.js#applyBrowserFixes stops mousedown event in Firefox (bug 321372) for all HTML elements but input tag. Adding html select tag to ignore list too. 483490: Custom ComboBox (based on HTML-select) does not open in Firefox 40+ Change-Id: I3ca6f93533dc238b95adbe97805924414417e0a1 Signed-off-by: Karsten Panier <>
2016-02-18Update JavaScriptCompressor to work with org.mozilla.javascript 1.7.5Ivan Furnadjiev1-4/+4
The API of org.mozilla.javascript.Parser class has changed in version 1.7.5. The method Parser.getEncodedSource() is removed. Use IRFactory class to obtain the encoded source. 487981: Update clientbuilder org.mozilla.javascript dependency to current Orbit version Change-Id: Ibe0c8894d557607819e20695c4b02bdcced1cb79
2016-02-15Avoid render Scrollbars twiceIvan Furnadjiev1-3/+3
Some custom widgets like Nebula GanttChart has overridden getHorizontal/VerticalBar() methods that return a ScrollBar instance, which does not belong to it (has different parent). As a result these scrollbars are rendered twice - once after the custom widget and once after the actual parent. This leads to client crash, when scrollbar is rendered before its actual parent. Change WidgetTreeUtil#handleScrollBars to visit only those scrollbars that belongs to the current scrollable. Change-Id: I5bb02a53c4b2835a7d4aeffe45b29034595de68a
2016-02-11Fix key event handling in FirefoxIvan Furnadjiev1-45/+29
Since Firefox 25 "keypress" event is not fired when "keydown" event is stopped. This is the same behaviour in other browsers. Adjust EventHandlerUtil.js#mustRestoreKeypress for Firefox < 25 and other browsers. Simplify the EventHandlerUtil.js#getEventPseudoTypes. The logic stays the same, but now it's more clear what are the differences between Firefox and other browsers. Adjust TestUtil.js and MenemonicHandlerTest.js accordingly. 487505: Arrow navigation in context menus not working in Firefox anymore Change-Id: I4cc2cfdccc3298cd8dc493244e9f5317caee7d6c
2016-02-10Fix layout calculation when font is changed on disabled LabelIvan Furnadjiev2-7/+15
Label layout depends on its font. If font on disabled Label is different (set by the themeing) than the regular one, the layout code should respect the new font. Add missing "disabled" state to Control widget matcher in ControlThemeAdapterImpl. Note: Now all common themeable control properties (font, padding, foreground and background) will respect the disabled state. For forground property it's now different from SWT, where even though the disabled label is grayed out, getForeground() shows the original color. 487364: Font-change in css based on widget-state is not considered when relayouting Change-Id: I90347c4fbfa787090b63be2cd0288ea885b7b636
2016-02-08Set actual tabIndex attribute value in DOM element instead of 1Ivan Furnadjiev1-2/+2
The current implementation always sets 1 as a value of tabIndex property, regardless the value sent by the server. In case of equal tabIndex values, the tab order is based on div position. This could lead to wrong tabbibg in saome cases. Apply the actual tabIndex value sent by the server to the DOM element. Change-Id: I84d28132b25cb04a36e181c1354d42087d93447b
2016-01-29Enable commented code in GridColumnLabelProviderIvan Furnadjiev1-9/+11
Column span on GridItem has been implemented in RAP 3.1M4. Enable commented code in GridColumnLabelProvider related to column spanning. Change-Id: Id1b9be722f7518036095b0b10cb227b52d400f97
2016-01-28Remove "Referer" http header from all requests (again)Ivan Furnadjiev1-6/+1
Commit 2a2ffcf6a387694209698ec5b6b9ec39bbaa572b has been reverted by mistake with commit 9d2fb9a106bbca34d31e1ae33a31021899a6ab39. Re-apply it again. Change-Id: Ib2c500ab741db6d6572104c1264e5472bdaa897e
2016-01-26Add support for RichTextEditor ToolbarConfigurationIvan Furnadjiev6-62/+287
The implementation uses the same API like Nebula RichTextEditor. Dynamic toolbar configuration (after RichTextEditor is created) is not supported as it is not natively supported by CKEditor. Nebula RichTextEditor recreates the CKEditor instance in this case. Change-Id: I6a6c3234d751c8aa77c3f94997dc0767a7cf6271
2016-01-20Remove CKEditor default borderIvan Furnadjiev3-0/+3
The CKEditor default border is not needed. The RichTextEditor border is controlled by SWT.BORDER style flag. Change-Id: Iac1d72a1ae49f33a63675813790277590d78c7db

Back to the top