No, I meant I set the rectangle, so it has to overwrite any preferred size.
That InteractionDialog seemed to be missing dimensions and coordinates
until I set them with the showPopupDialog(rect) method.
But
when I set them, it refuses to adopt that dimensions
because it turns up having a strong preferred size it wants to stick to.
Regards
Il giorno giovedì 17 dicembre 2020 alle 04:33:35 UTC+1 Shai Almog ha
scritto:
> What's pocking a value into the preferred size?
>
> On Wednesday, December 16, 2020 at 11:16:13 AM UTC+2 P5music wrote:
>
>> Use cases won't work if components do strange things.
>> I had to use the showPopupDialog(rect) method because the
>> InteractionDialog is not able to show itself with the right size. Ok.
>> Now it seems that it will stick to its preferred size whatever value I
>> poke into it, and by the way that value is also wrong because it appears in
>> a center-right-ish position.
>>
>> Il giorno mercoledì 16 dicembre 2020 alle 04:44:10 UTC+1 Shai Almog ha
>> scritto:
>>
>>> Place a breakpoint in the method and look at the preferred size of the
>>> preferred size of the dialog before you show it. I'm guessing it will be
>>> small.
>>> Showing a browser component in a dialog isn't a use case we ever
>>> intended so I doubt this will work.
>>>
>>> On Tuesday, December 15, 2020 at 10:38:15 AM UTC+2 P5music wrote:
>>>
>>>> As I said the measurement is OK, that is, I have the right dimensions.
>>>> Also in the debugging I see the correct values, but it is the
>>>> InteractionDialog that does not resize accordingly. Can you check my code
>>>> as to the size change of the InteractionDialog? All is done after the page
>>>> loading, so it is why the measurements are right but it does not resize.
>>>> Thanks
>>>>
>>>> Il giorno martedì 15 dicembre 2020 alle 05:15:26 UTC+1 Shai Almog ha
>>>> scritto:
>>>>
>>>>> Are you placing a BrowserComponent in an interaction dialog?
>>>>> That's no a great idea.
>>>>>
>>>>> BrowserComponent doesn't know its size since it didn't load the HTML
>>>>> yet and does it asynchronously. You need to determine the size for it not
>>>>> the other way around.
>>>>>
>>>>> On Monday, December 14, 2020 at 10:57:09 AM UTC+2 P5music wrote:
>>>>>
>>>>>> I had to change the user experience of one form in my app because I
>>>>>> couldn't have both a TextArea and a BrowserComponent to have the "fill
>>>>>> parent" behaviour.
>>>>>> I decided to display the webview in an alert dialog.
>>>>>> The width of the webview has to be as large as the lesser dimension
>>>>>> of screen, that is passed as the width parameter, for example the skin
>>>>>> I
>>>>>> am testing onto has 1534 (it is the height in landscape mode).
>>>>>> Also the height of the dialog is calculated to be as large as to
>>>>>> display a button and the webview.
>>>>>>
>>>>>> But I get the tiny dialog that can be seen in the attached image.
>>>>>>
>>>>>> How can this be fixed sticking with InteractionDialog?
>>>>>>
>>>>>> Notice that the rectangle has right dimensions, as expected to be in
>>>>>> the user interface:
>>>>>> x = 983 y = 729 size = width = 1534 height = 104 (debug values)
>>>>>> but the dialog does not spread.
>>>>>> In the code below there are some utility methods that work seamlessly
>>>>>> with other dialogs, to set the correct appearance. Just this dialog is
>>>>>> not
>>>>>> working.
>>>>>>
>>>>>> Thanks in advance
>>>>>>
>>>>>> public static void testWebViewAlertDialog( String s1, String s2,int
>>>>>> width)
>>>>>> {
>>>>>> InteractionDialog alertDialog=new InteractionDialog(s1);
>>>>>> Button okButton=new Button(R.okCommand);
>>>>>> alertDialog.setLayout(BoxLayout.y());
>>>>>> Container c1=new Container();
>>>>>> c1.setLayout(BoxLayout.y());
>>>>>>
>>>>>> okButton.addActionListener(new ActionListener() {
>>>>>> @Override
>>>>>> public void actionPerformed(ActionEvent evt) {
>>>>>> alertDialog.dispose();
>>>>>> }
>>>>>> });
>>>>>> c1.setLayout(new BorderLayout());
>>>>>>
>>>>>>
>>>>>>
>>>>>> BrowserComponent testWebView=new BrowserComponent();
>>>>>>
>>>>>>
>>>>>> testWebView.addWebEventListener("onLoad", new ActionListener() {
>>>>>> @Override
>>>>>> public void actionPerformed(ActionEvent evt) {
>>>>>> System.out.println("onload test");
>>>>>>
>>>>>>
>>>>>> c1.add(BorderLayout.SOUTH,okButton);
>>>>>> alertDialog.add(c1);
>>>>>> Rectangle rect = getRect(c1);
>>>>>> c1.add(BorderLayout.CENTER,testWebView);
>>>>>> if (width>rect.getWidth()) rect.setWidth(width);
>>>>>>
>>>>>> rect.setHeight(rect.getHeight()+testWebView.getPreferredSize().getHeight());
>>>>>> alertDialog.showPopupDialog(rect);
>>>>>> }});
>>>>>> testWebView.setPage(s2,"");
>>>>>>
>>>>>>
>>>>>> }
>>>>>>
>>>>>
--
You received this message because you are subscribed to the Google Groups
"CodenameOne Discussions" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/codenameone-discussions/d9d1aa81-97d9-4a7f-9fca-a0af5595b3f1n%40googlegroups.com.