Re: RequestFactory Problem: HTTP ERROR 500 /gwtRequest
Did you switched to the new RequestFactoryServlet in the web,xml file. When I switched to the 2.3 version I got similar error. I've changed web.xml and now it works. -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Re: RequestFactory Entity name
I guess, you should use debugger and see whats going on under the hood. In the spare time I will try to reproduce the error. -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Re: Few problems with creating/ updating entities with requestfactory and appengine
Thanks Juan, it works. That's what happen when you are using container managed transactions for the long time. I simply forgot about transactions. -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Re: Few problems with creating/ updating entities with requestfactory and appengine
Hi Juan 1. I added @Basic annotation with fetch type eager and it works. Till now I was pretty sure that embedded object are always fetched and I thought that this problem is related to the appengine. 2. Here is my persistence.xml file. Do you suggest that I should use transactions to get it working ? I'm using appengine for the first time and this app is actually testing app, I'm testing the new api Editors, RF. That's why i don't know much about appengine and its datastore. http://java.sun.com/xml/ns/persistence"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; version="1.0" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd";> org.datanucleus.store.appengine.jpa.DatastorePersistenceProvider -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Few problems with creating/ updating entities with requestfactory and appengine
Hi i have a few problems with updating/creating entities. My model is very simple : @Entity Company { some fields . @Embedded Address } @Embeddable Addres { . some fileds ... } Of course AddressProxy is subtype of the ValueProxy. I'm running my sample in devmode using appengine. Here are the problems/questions. 1. When I want to fetch all the companies with the corresponding address I have to, on the server side, iterate over the list and call company.getAddress() to really fetch the embedded address object. Calling list.size() it's not sufficient to get rid of lazy loading. Of course on the client side I'm calliing with(String[] paths) on the request context object. Does anybody has similar problem as mine when using appengine? 2. During updating the entity when I change only the field from the company entity for example name the change is not saved to the storage, from logs I see that rf sends the new name to the server, but it's not being persisted. But when I change the name field and also one of the fields of the embedded address object, the changes are persisted successfully. 3. Version remains the same, even after successful entity update. 4. After flushing of the requestFactoryEditorDriver the changes are not being reflected in the proxy passed to the edit method. How can I obtain changes and see what has been changed , before sending them to the server ? -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Re: RequestFactory with parameter
I'm not sure, but I guess it is always required. -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Re: EditorDriver.setViolations in 2.3 release branch doesn't work as expected
I post the new issue regarding to editorDriver.setViolations http://code.google.com/p/google-web-toolkit/issues/detail?id=6153 -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
EditorDriver.setViolations in 2.3 release branch doesn't work as expected
Hi Lately I have a problem with calling isChanged on RequestContext here is the link to discussion on that topic https://groups.google.com/d/topic/google-web-toolkit/HznAkg94WUc/discussion Thomas has suggested that my problems can be solved by using editorDriver.isDirty introduced in gwt 2.3. Today I compiled gwt from 2.3 release branch and editorDriver.isDirty works as expected, but unfortunately setting violations on the editorDriver does not result of showing of the error messages in the view. The view is quite straightforward and it consists a bunch of ValueBoxEditorDecorator instances and one embedded address editor. After some debugging, I guess the problem lies in the line 112 of the com.google.gwt.editor.client.impl.SimpleViolation#pushViolations. /** * Maps an abstract representation of a violation into the appropriate * EditorDelegate. */ public static void pushViolations(Iterable violations, EditorDriver driver, KeyMethod keyMethod) { DelegateMap delegateMap = DelegateMap.of(driver, keyMethod); // For each violation for (SimpleViolation error : violations) { * Object key = error.getKey();* List> delegateList = delegateMap.get(key); if (delegateList != null) { // For each delegate editing some record... for (AbstractEditorDelegate baseDelegate : delegateList) { Calling error.getKey() always returns null, for every violation object in the collection and then delegateMap returns null for the null key. Am I right, or maybe in 2.3 passing the validation error should be done in different way ? I run the DynaTableRF example and in that app validation messages around textboxes are not displayed as well. Also, I'm confused, what kind of errors are recorded by the editorDriver during flushing. In DynaTableRF checking for errors after flush results in one error related to the zipCode field (so suprisingly it looks like client side validation ? ). But in my example it simply doesn't work, althought I also have the embeded Address ValueProxy with the zipCode member annotated by @Pattern. -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Re: Is the order of proxy creation matters ?
Thank you for the very quick response. I'll keep in mind to create EntityProxy before creation of the nested ValueProxies, until 2.3 version will not be available. But I guess the second part of my post is not related to this issue ? Why requestContext.isChanged() returns true for the newly created EntityProxy with the nested ValueProxy ? Is there any way to tell requestContext to track changes of the proxy from some point of the time, especially after setting the address property in the company ? Is it valid to set address proxy in the company after marking company proxy in the requestContext to being edited ? In DynaTableRF it is done in that way but in my example changes are not flushed to the corresponding address proxy. -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Is the order of proxy creation matters ?
In my project I have Company entity with an embedded Address object. Object structure is almost the same as it is found in the DynaTableRF example. On the client side CompanyProxy extends EntityProxy, and AddressProxy extends ValueProxy. I have notice that when I create AddressProxy before CompanyProxy I get following exception when I call editorDriver.flush().isChanged() : Caused by: java.lang.ClassCastException: pl.scentia.gwt.themes.showcase.shared.AddressProxyAutoBean_com_google_gwt_requestfactory_shared_impl_EntityProxyCategory_com_google_gwt_requestfactory_shared_impl_ValueProxyCategory_com_google_gwt_requestfactory_shared_impl_BaseProxyCategory$1 cannot be cast to com.google.gwt.requestfactory.shared.EntityProxy at com.google.gwt.requestfactory.shared.impl.AbstractRequestContext.isChanged(AbstractRequestContext.java:268) at pl.scentia.gwt.themes.showcase.client.activity.CompanyEditActivity.isChanged(CompanyEditActivity.java:187) And here is the related part of the activity start which is reponsible for creating proxies, editorDriver and so on : CompanyRequest request = requestFactory.companyRequest(); AddressProxy address = request.create(AddressProxy.class); CompanyProxy company = request.create(CompanyProxy.class); company.setAddress(address); request.persist().using(company); editorDriver = view.createEditorDriver(eventBus,requestFactory); editorDriver.edit(company, request); view.setDelegate(this); panel.setWidget(view); But to get rid of this error all I have to do is to create the AddressProxy after CompanyProxy : CompanyRequest request = requestFactory.companyRequest(); *CompanyProxy company = request.create(CompanyProxy.class); * * AddressProxy address = request.create(AddressProxy.class);* company.setAddress(address); request.persist().using(company); editorDriver = view.createEditorDriver(eventBus,requestFactory); editorDriver.edit(company, request); view.setDelegate(this); panel.setWidget(view); And now I get no exceptions anymore. In the AbstractRequestContext#isChanged() I have found that AddressProxy is cast to EntityProxy but it is ValueProxy of course : public boolean isChanged() { /* * NB: Don't use the presence of ephemeral objects for this test. * * Diff the objects until one is found to be different. It's not just a * simple flag-check because of the possibility of "unmaking" a change, per * the JavaDoc. */ for (AutoBean bean : editedProxies.values()) { AutoBean previous = bean.getTag(PARENT_OBJECT); if (previous == null) { // Compare to empty object *Class proxyClass = ((EntityProxy) bean.as()).stableId().getProxyClass();* previous = getRequestFactory().getAutoBeanFactory().create(proxyClass); } if (!AutoBeanUtils.diff(previous, bean).isEmpty()) { return true; } } return false; } So my question is the proxy creation really matters ? From the DynaTableRF I could conclude that it is not, but in that example isChanged is not called anywhere. In the DynaTableRF setting the address is called after the marking parent entity to be edited. PersonProxy person = context.edit(context.create(PersonProxy.class)); person.setAddress(address); When I do this the same in my application flushing the editorDriver does not populate changes to address fields and validation against the address fields is not called. I've got also another problem related to checking if the proxy is changed. In the activity mayStop I'm checking whether the proxy has been changed or not. If yes I display confirmation box. This is the proxy creation stage so the form is populated with the empty text boxes and as long as the user does not enter any value into the boxes he should be free to go to the other place without any confirmation, but the confirmation appears because isChanged() returns true. I guess that's because I'm setting the address instance to the company. So the underlying requestContext believes that the company proxy has really been changed. I thought that it starts tracking the changes after calling the edit but it seems that no. Is there any way to tell the requestContext, to track changes from now ? Or maybe I miss something and dealing with requestFactory and nested proxies should be done in some other way ? -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Using browser specific selectors in CssResource
Hi Is it possible to use browser specific selectors like I used in this following statement in the CssResource's css file : button::-moz-focus-inner, button:focus::-moz-focus-inner { border: 0; padding: 0; } The compiler is stripping this declaration from the result. Is it possible to tell the compiler that it shouldn't get stripped ? Maybe I can use literal function with this selector in some magic way ? -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Re: Using PopupPanel in UIBinder
Thanks for the advice. But it would work well if the root element in the ui.xml was g:FlowPanel but I want it to be g:PopupPanel. In the meantime I have found what was wrong. UiFactory method thatsMe must declare PopupPanel as a return type not the SamplePopup type. When I changed this line it works as a charm. Well it seems that I still don't understand very well UiFactory. Also documentation only touches that subject. However my second problem is still valid, namely, how can declare the popuppanel and the widget over which the popup is about to show in the one ui.xml template. Till now I have to declare the popups, dialogboxes in the separeate ui.xml files and the corresponding classes. It would be nice to have them packed within the same ui.xml template. I think that this problem applies to all subclasses of the popuppanel. Thanks Marcin On Dec 20, 4:18 pm, Subhrajyoti Moitra wrote: > public SamplePopup() { > logger.fine("Creating SamplePopup"); > * add(uiBinder.createAndBindUi(this));* > > } > > u have to add the widget to the panel. > > Thanks, > Subhro. > > > > > > > > On Mon, Dec 20, 2010 at 8:30 PM, Marcin Misiewicz wrote: > > Hi > > > I'm trying to use PopupPanel declared in uibinder template. Template > > looks like this : > > > http://dl.google.com/gwt/DTD/xhtml.ent";> > > > xmlns:g="urn:import:com.google.gwt.user.client.ui"> > > > > .important { > > font-weight: bold; > > font-color: red; > > } > > > > > > > > Simple > > label > > > > > > > > > And the corresponding SamplePopup class : > > > public class SamplePopup extends PopupPanel { > > > private static final Logger logger = > > Logger.getLogger(SamplePopup.class > > .getName()); > > > private static SamplePopupUiBinder uiBinder = GWT > > .create(SamplePopupUiBinder.class); > > > interface SamplePopupUiBinder extends UiBinder > > { > > } > > > public SamplePopup() { > > logger.fine("Creating SamplePopup"); > > uiBinder.createAndBindUi(this); > > } > > > �...@uifactory > > SamplePopup thatsMe() { > > logger.fine("SamplePopup in thatsMe"); > > return this; > > } > > } > > > The code responsible for showing up popup : > > > @Inject > > SamplePopup popup; > > > �...@uihandler("warning") > > void onWarning(ClickEvent e) { > > popup.showRelativeTo(warning); > > } > > > When I click the button I get the empty popup (tiny blue square) > > attached to the bottom of the button, and of course no error > > messages. > > In the logs I see message FINE: Creating SamplePopup but there is no > > message comming from UiFactory "SamplePopup in thatsMe". > > It's strange because I use the same code structure to show DialogBox > > and with DialogBox everything works as expected ? > > > So question is what am I doing wrong ? > > > I'd like to ask also, if its possible to declare the popup content in > > the template which declare widget upon which the popup is about to > > show. > > When I declare the popup content in the same template as the widget to > > which this popup is related, popup markup is generated when the view > > is revealed. > > > Thanks in advance. > > > -- > > You received this message because you are subscribed to the Google Groups > > "Google Web Toolkit" group. > > To post to this group, send email to google-web-tool...@googlegroups.com. > > To unsubscribe from this group, send email to > > google-web-toolkit+unsubscr...@googlegroups.com > cr...@googlegroups.com> > > . > > For more options, visit this group at > >http://groups.google.com/group/google-web-toolkit?hl=en. -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to google-web-tool...@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Using PopupPanel in UIBinder
Hi I'm trying to use PopupPanel declared in uibinder template. Template looks like this : http://dl.google.com/gwt/DTD/xhtml.ent";> .important { font-weight: bold; font-color: red; } Simple label And the corresponding SamplePopup class : public class SamplePopup extends PopupPanel { private static final Logger logger = Logger.getLogger(SamplePopup.class .getName()); private static SamplePopupUiBinder uiBinder = GWT .create(SamplePopupUiBinder.class); interface SamplePopupUiBinder extends UiBinder { } public SamplePopup() { logger.fine("Creating SamplePopup"); uiBinder.createAndBindUi(this); } @UiFactory SamplePopup thatsMe() { logger.fine("SamplePopup in thatsMe"); return this; } } The code responsible for showing up popup : @Inject SamplePopup popup; @UiHandler("warning") void onWarning(ClickEvent e) { popup.showRelativeTo(warning); } When I click the button I get the empty popup (tiny blue square) attached to the bottom of the button, and of course no error messages. In the logs I see message FINE: Creating SamplePopup but there is no message comming from UiFactory "SamplePopup in thatsMe". It's strange because I use the same code structure to show DialogBox and with DialogBox everything works as expected ? So question is what am I doing wrong ? I'd like to ask also, if its possible to declare the popup content in the template which declare widget upon which the popup is about to show. When I declare the popup content in the same template as the widget to which this popup is related, popup markup is generated when the view is revealed. Thanks in advance. -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to google-web-tool...@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Re: Multiple Windows like a desktop
You can take a look at the SmartGWT or Ext GWT. Both of them allows you to do that but you must realize that SmartGWT is just the wrapper around javascript library. Ext GWT provide native gwt widgets but it's bit behind the current gwt release its still stucks in the era before uibinder. The next release will be fully compatible with GWT 2.1 but it will available in the Q2 next year. I guess it should be quite easy to be done using gwt-dnd or gquery. On Dec 7, 2:37 pm, Musicman75 wrote: > Hello, > > is there a small example how to create a desktop like screen with > multiple windows (resizing, minimize, maximize), add, show, hide > windows available? > > I can't use any framework which implements that feature. > > I tried to understand the sticky example from the GWT example page, > but I think it could be an easier way to show how to implement such a > feature. > > Thanks for help. -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to google-web-tool...@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
How do you use TabLayoutPanels with MVP ?
Hi I'm wondering what is the best practice of using mvp and TabLayoutPanel with the following layout of the page. The page layout is master/details. On top it displays some properties of the model and on the bottom in the tabs it shows some history data related to that model object. I guess its not rare case especially in business applications. So the object model is pretty straightforward one presenter/view for handling of the model object properties and bunch of presenters/views which are handling related history data. The problem is how to wire together TabLayoutPanel and presenters/ views it is responsible to display. I read the MVP part I and II tutorial and there parent presenter calls the go(HasWidgets container) on the child presenter so the child presenter can initialize and attach its view to the display container. But it's not the case when the container is TabLayoutPanel since when adding the tab I have to pass two widgets : header and tab content widget. On other hand TabLayoutPanel does not introduce handy interface for that operation for example HasWidgetsAndHeaders and for obvious reasons I would like to stick to interfaces in the presenters go() methods not go(TabLayoutPanel container). So I came with the following solution, my uibinder looks like this : Master display Tab 1 Tab 2 Then presenter holding the TabLayoutPanel listens for the tab selection events and binds the corresponding presenter display to its tab container. I'm not sure if its the best approach when working with TabLayoutPanel in MVP manner. Perhaps you have found the better solution ? I'm sure that the are more solutions and would like to know more about them especially since this problem is related to nested presenters, which are stronly debated here. -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to google-web-tool...@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Re: Customizing CSS Default GWT Widgets with CSSResource
Right know I'm customizing default gwt widgets. As a starting point I took the standard theme, I copied the standard.css file from standard theme and then declared this in my ThemeBundle like this : @Source("standard.css") CssResource getLegacyCssResource(); Then I have added @external declaration to every class listed in this file. Thanks to this I don't have to subclass CssResource and there is no need to declare getters for classes found in this css file. Below are external declarations for all the class names found in standard.css : @external gwt-Reference-standard, gwt-Button, gwt-CheckBox, gwt- CheckBox-disabled, gwt-FileUpload, gwt-Frame, gwt-PasswordTextBox, gwt- PasswordTextBox-readonly, gwt-PopupPanel, gwt-TextArea, gwt-TextArea- readonly, gwt-TextBox, gwt-TextBox-readonly; @external gwt-DecoratorPanel, topCenter, bottomCenter, middleLeft, middleRight, topLeftInner, topRightInner, bottomLeftInner, bottomRightInner, topLeft, topRight, bottomLeft, bottomRight; @external gwt-DialogBox, Caption, dialogContent, dialogBottomCenter, dialogMiddleCenter, dialogMiddleLeft, dialogMiddleRight, dialogTopLeftInner, dialogTopRightInner, dialogBottomLeftInner, dialogBottomRightInner, dialogTopLeft, dialogTopRight, dialogBottomLeft, dialogBottomRight; @external gwt-DisclosurePanel, gwt-DisclosurePanel-open, gwt- DisclosurePanel-closed, header, content; @external gwt-HorizontalSplitPanel, hsplitter, gwt-VerticalSplitPanel, vsplitter, gwt-HTML, gwt-Hyperlink, gwt-Image, gwt-Label, gwt-ListBox; @external gwt-MenuBar, gwt-MenuItem, gwt-MenuItem-selected, gwt- MenuItem-disabled, gwt-MenuBar-horizontal, gwt-MenuItemSeparator, menuSeparatorInner, gwt-MenuBar-vertical, subMenuIcon, subMenuIcon- selected; @external gwt-MenuBarPopup, menuPopupTopCenter, menuPopupBottomCenter, menuPopupMiddleLeft, menuPopupMiddleRight, menuPopupTopLeftInner, menuPopupTopRightInner, menuPopupBottomLeftInner, menuPopupBottomRightInner, menuPopupTopLeft, menuPopupTopRight, menuPopupBottomLeft, menuPopupBottomRight; @external gwt-DecoratedPopupPanel, popupContent, popupMiddleCenter, popupTopCenter, popupTopRight, popupTopLeft, popupBottomCenter, popupBottomRight, popupBottomLeft, popupMiddleLeft, popupMiddleRight, popupTopLeftInner, popupTopRightInner, popupBottomLeftInner, popupBottomRightInner, gwt-PopupPanelGlass; @external gwt-PushButton-up, gwt-PushButton-up-hovering, gwt- PushButton-up-disabled, gwt-PushButton-down, gwt-PushButton-down- hovering, gwt-PushButton-down-disabled, gwt-RadioButton, gwt- RadioButton-disabled; @external gwt-RichTextArea, hasRichTextToolbar, gwt-RichTextToolbar, gwt-PushButton-up, gwt-PushButton-up-hovering, gwt-PushButton-down, gwt-PushButton-down-hovering, gwt-ToggleButton-up, gwt-ToggleButton-up- hovering, gwt-ToggleButton-up-disabled, gwt-ToggleButton-down, gwt- ToggleButton-down-hovering, gwt-ToggleButton-down-disabled; @external gwt-StackPanel, gwt-StackPanelItem, gwt-StackPanelContent, gwt-DecoratedStackPanel, stackItemTopLeft, stackItemTopRight, stackItemTopLeftInner, stackItemTopRightInner, stackItemTopCenter, stackItemMiddleLeft, stackItemMiddleLeftInner, stackItemMiddleRightInner, stackItemMiddleRight, stackItemMiddleCenter, gwt-StackPanelItem-first, gwt-StackPanelItem- below-selected; @external gwt-SuggestBox, gwt-SuggestBoxPopup, item, item-selected, suggestPopupContent, suggestPopupTopCenter, suggestPopupBottomCenter, suggestPopupMiddleLeft, suggestPopupMiddleRight, suggestPopupTopLeftInner, suggestPopupTopRightInner, suggestPopupBottomLeftInner, suggestPopupBottomRightInner, suggestPopupTopLeft, suggestPopupTopRight, suggestPopupBottomLeft, suggestPopupBottomRight; @external gwt-TabBar, gwt-TabBarFirst, gwt-TabBarRest, gwt-TabBarItem, gwt-TabBarItem-selected, gwt-TabBarItem-disabled, gwt-TabPanel, gwt- TabPanelBottom; @external gwt-DecoratedTabBar, tabTopCenter, tabTopLeft, tabTopRight, tabTopLeftInner, tabTopRightInner, tabMiddleLeft, tabMiddleRight, tabMiddleLeftInner, tabMiddleRightInner, tabMiddleCenter; @external gwt-Tree, gwt-TreeItem, gwt-TreeItem-selected, gwt-DateBox, dateBoxFormatError, dateBoxPopup, gwt-DatePicker, gwt-DatePicker, datePickerMonthSelector, datePickerDays, datePickerDay, datePickerWeekdayLabel, datePickerWeekendLabel, datePickerDayIsToday, datePickerDayIsWeekend, datePickerDayIsFiller, datePickerDayIsValue, datePickerDayIsDisabled, datePickerDayIsHighlighted, datePickerDayIsValueAndHighlighted, datePickerMonth, datePickerPreviousButton, datePickerNextButton; @external gwt-StackLayoutPanel, gwt-StackLayoutPanelHeader, gwt- StackLayoutPanelHeader-hovering, gwt-StackLayoutPanelContent, gwt- TabLayoutPanel, gwt-TabLayoutPanelTabs, gwt-TabLayoutPanelContent, gwt- TabLayoutPanelTab, gwt-TabLayoutPanelTab-selected, gwt- SplitLayoutPanel-HDragger, gwt-SplitLayoutPanel-VDragger; After that you can very easy customize gwt widgets, you can use @def in this file and use all of the benefits which come from CssResource. And of course don't forget to call theme.getLegac
Re: Is it possible to pass the value @def to the literal function in CssResource
I found the solution. It is possible to mix literal and @def in the same ccs property so this working fine : background: literal("-webkit-gradient(linear, left top, left bottom, from(") buttonGradientStartColor literal("), to(") buttonGradientEndColor literal("))"); On Nov 30, 5:32 pm, Marcin Misiewicz wrote: > Hi > > In my theme I want to use css3 gradients. > Since gradients are not the part of the standard yet I have to use > wrap them in the literal function like in the example (for webkit > browsers) below : > background: literal("-webkit-gradient(linear, left top, left bottom, > from(#FFF), to(#EDEDED))"); > > It works fine but I would like define in my CssResource variables > gradientColorStart, gradientColorEnd which can be used later in the > other styles definitions. Unfortunately code like below does not > work : > > @def gradientColorStart #FFF; > @def gradientColorEnd #EDEDED; > > .someClass { > background: literal("-webkit-gradient(linear, left top, left bottom, > from(gradientColorStart), to(gradientColorEnd))"); > > } > > Is there any possibility to use @def inside literal function ? -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to google-web-tool...@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Is it possible to pass the value @def to the literal function in CssResource
Hi In my theme I want to use css3 gradients. Since gradients are not the part of the standard yet I have to use wrap them in the literal function like in the example (for webkit browsers) below : background: literal("-webkit-gradient(linear, left top, left bottom, from(#FFF), to(#EDEDED))"); It works fine but I would like define in my CssResource variables gradientColorStart, gradientColorEnd which can be used later in the other styles definitions. Unfortunately code like below does not work : @def gradientColorStart #FFF; @def gradientColorEnd #EDEDED; .someClass { background: literal("-webkit-gradient(linear, left top, left bottom, from(gradientColorStart), to(gradientColorEnd))"); } Is there any possibility to use @def inside literal function ? -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to google-web-tool...@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Re: How to override CellTable css
I guess, that you are also passing CellTableResource instance to the constructor of the CellTable. Othwerwise you will stiil use the default styles. On Nov 28, 9:04 am, savilak wrote: > Hi Manstis, > > use the code below to do it. > > 1) Extend CellTable.Resources > --- > > public interface CellTableResource extends CellTable.Resources > { > public interface CellTableStyle extends CellTable.Style {}; > > �...@source({"CellTable.css"}) > CellTableStyle cellTableStyle();}; > > --- > > > 2) Link it with your CellTable.css file that contains all your styling > > --- > > @CHARSET "UTF-8"; > > @def selectionBorderWidth 0px; > .cellTableWidget { > > } > > .cellTableFirstColumn { > > } > > .cellTableLastColumn { > > } > > .cellTableFooter { > border-top: 2px solid #6f7277; > padding: 3px 15px; > text-align: left; > color: #4b4a4a; > text-shadow: #ddf 1px 1px 0; > > } > > .cellTableHeader { > /*border-bottom: 2px solid #6f7277;*/ > border-top: 1px solid #6f7277; > border-bottom: 1px solid #6f7277; > /*padding: 3px 15px;*/ > padding: 3px 6px 3px 6px; > text-align: left; > font-size:14px; > color: #4b4a4a; > > /*text-shadow: #ddf 1px 1px 0;*/ > > } > > .cellTableCell { > /* padding: 2px 15px; */ > padding: 6px 6px 6px 6px; > > } > > .cellTableFirstColumnFooter { > > } > > .cellTableFirstColumnHeader { > > } > > .cellTableLastColumnFooter { > > } > > .cellTableLastColumnHeader { > > } > > .cellTableEvenRow { > background: #ff; > > } > > .cellTableEvenRowCell { > border: selectionBorderWidth solid #ff; > > } > > .cellTableOddRow { > background:#f3f7fb; > > } > > .cellTableOddRowCell { > border: selectionBorderWidth solid #f3f7fb; > > } > > .cellTableHoveredRow { > background: #cc; > > } > > .cellTableHoveredRowCell { > border: selectionBorderWidth solid #eee; > > } > > .cellTableKeyboardSelectedRow { > /*background: #ffc;*/ > > } > > .cellTableKeyboardSelectedRowCell { > border: selectionBorderWidth solid #ffc; > > } > > .cellTableSelectedRow { > background: #628cd5; > color: white; > height: auto; > overflow: auto; > > } > > .cellTableSelectedRowCell { > border: selectionBorderWidth solid #628cd5; > > } > > /** > * The keyboard selected cell is visible over selection. > */ > .cellTableKeyboardSelectedCell { > border: selectionBorderWidth solid #d7dde8; > > } > > @sprite .cellTableLoading { > gwt-image: 'cellTableLoading'; > margin: 30px; > > } > > --- > > > I hope this helps... > > Regards > Savilak > > On Nov 27, 11:52 pm, manstis wrote: > > > > > > > > > Hi, > > > I need to override some CellTable CSS definitions. > > > I've been able to isolate the classes to some named along the lines > > of .GL0PBETBKC, .GL0PBETBEC etc. > > > The CellTable CSS appears to be injected into my module after my .css > > file and the only way I have been able to override the above styles is > > by using !important in my css file. Firebug shows the CellTable's CSS > > to come fromhttp://127.0.0.1:/MyModule.html?gwt.codesvr=127.0.0.1:9997. > > > Can anybody please advise the best way to override the above styles? > > They are not part of standard.css and therefore changing my GWT Module > > to inherit from 'com.google.gwt.user.theme.standard.StandardResources' > > and linking to standard.css from my HTML page manually does not > > provide a solution. > > > Thanks, > > > Mike -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to google-web-tool...@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Re: best practice for handling CSS themes
I really like your solution. Thank you for sharing your solutions. But I wonder how do you deal with the new gwt widgets which support CssResource's. I'm not sure if your solutions will be working for example with CellBrowser or SimplePager. They come with bundled default Resources and they inject the styles in the constructor. I understand that my BaseClientBundle can look like this : interface BaseClientBundle extends ClientBundle{ @Source("greenTheme.css") SomeCssResource getCssResource(); CellBrowserResources getCellBrowserResources(); } And during the instantantion of the CellBrowser I can pass CellBrowserResources instance. But this approach seems to be error prone. A developer can easily forget to pass the resource reference from current theme bundle, and in the result he will get default styling. Also theming such a widget inside uibinder, forces us to manually create the widget, which reduces productivity. So my question is how do you cope with widgets which uses resources internally ? Not only with leagacy (written in old manner) widgets. On Oct 29, 2:53 pm, Jeff Larsen wrote: > On Oct 29, 2:03 am, wolfgang wrote: > > > > > > > > > > > I was facing the same question and my solution was to have my main > > theme in a CSSResource file. > > This resource file is injected during the loading procedure of the > > app. > > Since the layout of my app is defined through CSS, I only allow to > > change a few things (like color, font-style, various sizes ...). > > For this I use the runtime substitution (@eval) - so I can change > > things during runtime. I only have to (re-)inject the affected > > stylesheet again. > > This works fine so far and I'm not knowing an other way to do this. So > > if there's a better way - please post. > > > > GWT helps *me* to not have to worry so much about > > > browsers-that-aren't-Firefox. But what happens when I hand over the > > > WAR (with just HTML, CSS, and JavaScript) to a third party and they > > > want to add their own branding? Do *they* then have to worry about > > > cross-browser issues? Or would I have to limit them to using > > > "portable" CSS only? > > > Since I'm using CSSResource there is no way to replace the css file > > without compiling the app again (the css styles may be obfuscated and > > added to the widgets). I hope this is correct. > > I haven't tried this, but my guess is you could create a client bundle > with all your goodies inside it. Then extend that client bundle and > override the various style sheet source locations, then you could just > selectively inject the client bundle into your application. > > interface BaseClientBundle extends ClientBundle{ > > @Source("greenTheme.css") > SomeCssResource getCssResource(); > > } > > interface ExtendedClientBundle extends BaseClientBundle{ > �...@source("yellowTheme.css") > SomeCssResource getCssResource(); > > } > > You may need to reload the page to make sure that the yellowTheme.css > doesn't get some funky behavior from greenTheme, but this should allow > you to swap out skins on the page. -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to google-web-tool...@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Re: design pattern for common functionality between Activities
And you are definitely right. On Nov 19, 8:05 pm, koma wrote: > How I understand things, a display region is a dynamic part of a > webpage; > > Depending on the place you're at, a display region is populated with a > specific activity. > A activity manager is the manager of a display region and decides the > right activity to show up for a given display region when a certain > page is showing. > > So, in terms of your question : a display region can be a dynamic > menu, a sidebar, a logout/login link not the entire group. > An example > > page with menu displayregion, maincontent displayregion, sidebar > displayregion > > example page #ContactDetailsPage:FooBar > +> sidebar display region will be instructed by the sidebar- > activitymanager to start the activity GrandChildrenActivity (display > grandchildren in side bar) > +> maincontact display region will be instructed by the > maincontentarea-activitymanager to start the activity > ContactDetailsActivity (display contact details in main content area) > +> menu display region will be instructed by the menu-activitymanager > to start the activity MenuActivity (show the menu) > > example page #Login > +> sidebar display region will be instructed by the sidebar- > activitymanager to display nothing (NULL) > +> maincontact display region will be instructed by the > maincontentarea-activitymanager to start the activity LoginActivity > (display login page) > +> menu display region will be instructed by the menu-activitymanager > to start the activity WelcomeActivity (show a welcome msg) > > etc etc. > > So far my understanding. > > Koen -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to google-web-tool...@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Re: All I Want for Christmas is a powerful Widget Library from Google !
+1 On Nov 15, 11:05 pm, Jaroslav Záruba wrote: > +1 (Isn't there a enhancement request for this?) > > Please make it not only richer, but also sleeker looking. > I <3 Google but I think the design/look quite often lacks heavily > behind the service itself, YouTube being one blatant example, IMHO. (I > believe Zuckerberg is glad Google does not seem to realize how great > potential YouTube presents in terms of social services.) > > On Nov 15, 10:46 pm, zixzigma wrote: > > > > > > > > > That's great news. > > Thank You > > > On Nov 15, 1:43 pm, Eric Clayberg wrote: > > > > FYI...the UiBinder support in GWT Designer is no longer in beta as of > > > GWT Designer v8.1 and GWT 2.1. -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to google-web-tool...@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Re: GWT 2.1 hellomvp using GIN
Well I'm also very interested in some guidelines of how to use gin with activities and places. On Oct 20, 11:42 am, Sebastian Beigel wrote: > Hi, > > I'm looking at 2.1 (RC1) for the first time right now and I try to > refactor the hellomvp sample to use GIN. > > Unfortunately, I have some problems with the places -> activities > mapping. The doc says "A better way to implement the chain of nested > ifs would be with a GIN module." and the code is commented "Map each > Place to its corresponding Activity. This would be a great use for > GIN.". > > I agree, but I don't really know how to do this mapping :) Has anyone > refactored this code to use GIN? > > Thank you, > Sebastian -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to google-web-tool...@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Re: keyboard shortcuts with CTRL
Here i post the solution. Actually it's very easy : HandlerRegistration logHandler = Event.addNativePreviewHandler(new NativePreviewHandler() { @Override public void onPreviewNativeEvent(NativePreviewEvent event) { NativeEvent ne = event.getNativeEvent(); if (ne.getCtrlKey() && (ne.getKeyCode()=='l' || ne.getKeyCode()=='L')) { ne.preventDefault(); DeferredCommand.addCommand(new Command() { @Override public void execute() { loggerWindow.show(); } }); } } }); CTRL+l oraz CTRL+L - opens the window with log messages. On 1 Paź, 00:35, Marcin Misiewicz wrote: > I'm also interested in that topic. Does anybody has some experience > with keyboard shortcuts in gwt. > > I'd like to have at least one application wide shortcut for opening a > log panel and a few shortcuts > dependent of what panel actually has focus on. > > On 1 Wrz, 19:13, levier wrote: > > > > > > > > > Hi all, > > > I'm developing an enterprise application and all users scream > > forkeyboardshortcuts. > > And not shortcuts like you see in GMail (focus some widget, press c to > > compose a new mail etc) but true CTRL+N, CTRL+S like you see in a > > desktop application. > > I thought it really couldn't be done, till I tried the google docs in > > Chrome: CTRL+B made my text bold. Wow, that works! But probably it > > only works on Chrome right, I thought, so I didn't really believe in > > it and let it pass. > > > Then I saw Microsoft releasingkeyboardshortcuts in Hotmail. I tried > > one and I got a pop up saying "hey you pressed some key, did you mean > > it askeyboardshortcut?"... hahaha, so again I let it pass and > > thought it couldn't be done. > > But today I saw Microsoft releasing their Word, Excel... Office suite > > on-line (search for Office Web Apps). I tried CTRL+B and it put my > > text in bold and didn't show my Bookmarks bar instead! In IE8 and > > Chrome. > > > Now, some proof that it doesn't really work all of the time: I > > selected the text on the top of the page, hit CTRL+S and nothing > > happens... there goes my belief in in-browserkeyboardshortcuts > > again. > > I guess thekeyboardlistener is only put on the textarea and ribbon > > bar and not a "true browser window listener". > > > Still, my question stands: > > how can I blockkeyboardshortcuts like CTR+O, CTRL+N and do something > > with them instead of letting the browser handle them (CTRL+N typically > > opens a new browser window, I don't want that)? Any advice is much > > appreciated. -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to google-web-tool...@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Re: keyboard shortcuts with CTRL
I'm also interested in that topic. Does anybody has some experience with keyboard shortcuts in gwt. I'd like to have at least one application wide shortcut for opening a log panel and a few shortcuts dependent of what panel actually has focus on. On 1 Wrz, 19:13, levier wrote: > Hi all, > > I'm developing an enterprise application and all users scream > forkeyboardshortcuts. > And not shortcuts like you see in GMail (focus some widget, press c to > compose a new mail etc) but true CTRL+N, CTRL+S like you see in a > desktop application. > I thought it really couldn't be done, till I tried the google docs in > Chrome: CTRL+B made my text bold. Wow, that works! But probably it > only works on Chrome right, I thought, so I didn't really believe in > it and let it pass. > > Then I saw Microsoft releasingkeyboardshortcuts in Hotmail. I tried > one and I got a pop up saying "hey you pressed some key, did you mean > it askeyboardshortcut?"... hahaha, so again I let it pass and > thought it couldn't be done. > But today I saw Microsoft releasing their Word, Excel... Office suite > on-line (search for Office Web Apps). I tried CTRL+B and it put my > text in bold and didn't show my Bookmarks bar instead! In IE8 and > Chrome. > > Now, some proof that it doesn't really work all of the time: I > selected the text on the top of the page, hit CTRL+S and nothing > happens... there goes my belief in in-browserkeyboardshortcuts > again. > I guess thekeyboardlistener is only put on the textarea and ribbon > bar and not a "true browser window listener". > > Still, my question stands: > how can I blockkeyboardshortcuts like CTR+O, CTRL+N and do something > with them instead of letting the browser handle them (CTRL+N typically > opens a new browser window, I don't want that)? Any advice is much > appreciated. -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to google-web-tool...@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Deserialization of the JSON to JAXB annotated JPA pojo's on the client side.
Hi In my app I have JAX-RS webservices which are producing JSON response from JPA entities annotated by JAXB. I wonder is there any clever and automated way to deserialize JSON response back to JPA entities on the client side. I know that gwt comes with capabilities to manually deserialize json to java object, but these days JAX-RS became to be a standard in Java EE 6 for writing RESTful webservices and it uses internally JAXB to serialize java objects to xml or json response, so I hope that there is more elegant solution to do this task than doing this "manually". Do you have any suggestions or experience in that matter ? Regards Marcin Misiewicz -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to google-web-tool...@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.