Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.awt.Component;
- import java.awt.Container;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.OutputStream;
- import java.util.Properties;
- import org.apache.commons.io.IOUtils;
- import org.apache.commons.lang3.StringUtils;
- public class WindowBoundsRestorer
- {
- private final String xmlFileName;
- private Properties properties;
- public WindowBoundsRestorer(String xmlFileName)
- {
- this.xmlFileName = xmlFileName;
- }
- private void setBounds(String key, Component component)
- {
- key = key + component.getName();
- String position = properties.getProperty(key);
- if (component.getName() != null && !StringUtils.isBlank(position))
- {
- String[] nums = position.split(",");
- component.setBounds(Integer.parseInt(nums[0]), Integer.parseInt(nums[1]),
- Integer.parseInt(nums[2]), Integer.parseInt(nums[3]));
- }
- if (component instanceof Container)
- {
- key = key + "/";
- Container container = (Container) component;
- for (Component child : container.getComponents())
- setBounds(key, child);
- }
- }
- public void restore(Component component)
- {
- properties = new Properties();
- InputStream reader = null;
- try
- {
- reader = new FileInputStream(xmlFileName);
- properties.loadFromXML(reader);
- } catch (IOException e)
- {
- e.printStackTrace();
- return;
- } finally
- {
- IOUtils.closeQuietly(reader);
- }
- Component top = component;
- while (top.getParent() != null)
- top = top.getParent();
- setBounds("", top);
- }
- private void getBounds(String key, Component component)
- {
- key = key + component.getName();
- String position = String.format("%d,%d,%d,%d", component.getX(), component.getY(),
- component.getWidth(), component.getHeight());
- properties.setProperty(key, position);
- if (component instanceof Container)
- {
- key = key + "/";
- Container container = (Container) component;
- for (Component child : container.getComponents())
- getBounds(key, child);
- }
- }
- public void save(Component component)
- {
- Component top = component;
- while (top.getParent() != null)
- top = top.getParent();
- properties = new Properties();
- getBounds("", top);
- OutputStream writer = null;
- try
- {
- writer = new FileOutputStream(xmlFileName);
- properties.storeToXML(writer, "Browser");
- } catch (IOException e)
- {
- e.printStackTrace();
- } finally
- {
- IOUtils.closeQuietly(writer);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement