Shrink browser content to browser window size - java

am wondering, if there is a solution for shrinking a charts within browser window, i.a if i resize my browser window my application with highcharts do it well to, it's also resized to the browser window size, but if i shrink my browser window, the app with charts doesn't shrink in size to the browser window size, it only do it when refresh the whole web page, but i need it to be able to do it automatically when you shrink the browser window, the window content also shrinks to the browser sizes, am using java with UiBinder DockLayoutPanel inside RootLayoutPanel. Would be very thankful for any suggestions.

Without specific code examples a specific answer is difficult to give. But to react to browser resize you need to implement the onResize() method. The layout panels you name call this method on children that implement the interface RequireResize. So the panel with the chart should implement the onResize(), and resize the chart. Make sure the parent tree of this widget all implement onResize() or else the method won't be called.

Yes it is possible example (note that I am not using moxie but another wrapper ) : http://data-dragon-766.appspot.com/
You can find the class responsible for rendering the chart.
https://github.com/highcharts4gwt/highcharts/blob/master/src/main/java/com/github/highcharts4gwt/client/view/widget/HighchartsLayoutPanel.java

Related

Vaadin - set window size to wrap its contents

I have a custom window that extends com.vaadin.ui.Window, inside the window I put com.vaadin.ui.TabSheet and into the TabSheet couple of custom components that extend com.vaadin.ui.VerticalLayout.
Everything is correctly placed inside, but the window appears totally minimized. How to extend it to show all contents properly, but without using .setSizeFull() as I dont want to stretch it to whole screen?
I tried .setSizeFull() to TabSheet and its contents, but that didn't helped at all.
Setting custom height and width for the Window works, but this is not what I intend to do...
As it was said in the comments area, a Window must have a size.
I myself would have preferred that the window adapts itself to the screen size or browser size but that is how it works.

How to put JFrame into existing JPanel in Java Swing?

I have an open-source java swing application like this:
http://i47.tinypic.com/dff4f7.jpg
You can see in the screenshot, there is a JPanel divided into two area, left and right area. The left area has many text links. When I click the SLA Criteria link, it will pop-up the SLA Criteria window. The pop-up window is JFrame object.
Now, I'm trying to put the pop-up window into right area of the JPanel, so that means no pop-up window anymore, i.e. when I click the SLA Criteria link, its contents will be displayed at the right area of the JPanel. The existing content of the right area of JPanel will not be used anymore. The concept is just same like in the java api documentation page: http://docs.oracle.com/javase/6/docs/api. You click the link in the left frame, you'll get the content displayed at the right frame.
The example illustration is like this:
(note: it's made and edited using image editor, this is not a real screenshot of working application)
http://i48.tinypic.com/5vrxaa.jpg
So, I would like to know is there a way to put JFrame into JPanel?
I'm thinking of using JInternalFrame, is it possible? Or is there another way?
UPDATE:
Source code:
http://pastebin.com/tiqRbWP8 (VTreePanel.java, this is the panel with left & right area divisions)
http://pastebin.com/330z3yuT (CPanel.java, this is the superclass of VTreePanel and also subclass from JPanel)
http://pastebin.com/MkNsbtjh (AWindow.java, this is the pop-up window)
http://pastebin.com/2rsppQeE (CFrame.java, this is the superclass of AWindow and also subclass from JFrame)
Instead of trying to embed the frame, you want to embed the frame's content.
There is (at least) one issue I can see with this.
The menu bar is controlled by the frame's RootPane.
Create you're self a new JPanel. Set it's layout to BorderLayout.
Get the menu bar from the frame (using JFrame#getJMenuBar) and added to the north position of you new panel.
Get the frames ContentPane and add it to the center position of the panel.
There is undoubtedly countless other, application specific issues you will run into trying to do this...
No, you don't want to "put a JFrame into a JPanel" and your illustration above doesn't demonstrate this either. Instead it's showing a subordinate window on top of (not inside of) another window. If you absolutely need to display a new subordinate window, I'd recommend that you create and display a JDialog. The tutorials will explain how to do this, or if you get stuck post your code attempt and we'll help you work with this.
Edit 1
You state:
I need to convert from the pop-up window style into the jpanel content style. It's just like the java api documentation page style: docs.oracle.com/javase/6/docs/api When you click the text in left frame, it doesn't show any pop-up, right? The content is displayed at right frame directly. So that's basicly my goal. The source code is quite big. I will try to paste the source code if possible.
What you are looking for is to simply implement a MouseListener in a JList or JTable, and when responding to the click get the content based on the selection made. This has nothing to do with placing a JFrame in a JPanel and all to do with writing the correct program logic. Again, display it in a modal JDialog -- but that's all secondary to your writing the correct non-GUI logic. You're really barking up the wrong tree here. Forget about JFrames, forget about JPanels for the moment and instead concentrate on how you're going to extract the SLA Criteria data when it is clicked on.
Edit 2
I think I see what you're trying to do -- instead of JFrames and JDialogs, use JPanels and swap them using a CardLayout which would allow you to swap views.
I had skimming the source codes, I saw that the AWindow.java has internal panel (APanel.java) to hold the window's content, and it also has a public method to return the content panel object (getAPanel()). With this, I can use it for fetching the window's contents into other container.
Finally, I decided to use JTabbedPane in the right area of VTreePanel for displaying the pop-up window's contents.
You cannot put a Jframe into a JPanel. Instead you should try to create a separate panel that has functionalities like your JFrame and embed that into your JPanel.
Since you can put a JPanel into another JPanel but not a JFrame into another JPanel

Limiting a window drag movement in Vaadin

I have a Vaadin application which contains a header and a menu bar as well. The menu bar provides options where some of which opens up a new Window much similar to a desktop MIDI application. However the window can be moved above the menu and over the header. Does anyone know how it is possible to limit the view movement to within the content area. This content area is currently a VerticalLayout.
There is no built-in way for doing this. I think you have couple of options:
Implement a callback that moves the window to right place after the drag. This is not optimal for usability as it makes the window jump around.
Create / extend the Vaadin's (sub-)Window drag handler to and apply limits there. Unfortunately, this is not as easy as it could be, because you have to tinker with the browser's events directly.

Is it possible to make a window with a transparent background?

I was wondering if it would be possible to create a window using SWT that has either a transparent background or no background (i.e., just buttons and texts are shown floating).
I've tried using the setBackground() function like:
shell.setBackground(display.getSystemColor(SWT.TRANSPARENT));
but it will just show a window with a black background rather than a transparent one. any way to do this?
See How to Create Translucent and Shaped Windows (Java 7+).
..(SWT) uses the native window scheme, rather than an ugly/custom one. ..
Use Swing with the native PLAF.
Update 1
Me.
..you want component (button etc.), not Window (or ancestor) transparency?
To which you replied.
not necessarily the component itself, but the 'area' in which the component resides in. if you look at the Nested Layout Example above, you see the win 7's transparent border, then you see the normal gray background. I'd like that gray background to also be transparent.
You can create a window with per-pixel translucency, where each pixel has its own alpha value. With this feature you can, for example, create a window that fades away to nothing by defining a gradient in the alpha values.
And as an aside, that 3rd screenshot is actually the 2nd image ripped directly from the page that is linked in the 1st sentence of my reply (the same page where I got the above quote). Did you follow the link, read the page (look at the screenshots), try the working examples?

How to set JInternalFrame minimised title background?

I can set the title bar background when maximised using InternalFrame.activeTitleBackground and InternalFrame.inactiveTitleBackground but how do I set it when the internal frame is minimised?
There is no easy solution. The frame colors are part of the UI, so you will need to create a custom UI to do what you want. You can start by searching the Java source code to see where the "activeTitleBackground" and "inactiveTitleBackground" properties are used. That will give you an idea of the class and method that needs to be customized.

Categories