X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=ui%2FConfigEditor.java;h=2bc9dc9ff36652db8d4cd7dbbb3e1b1da2f9f2e8;hb=HEAD;hp=c687c98fee5637dfb8e10b7bad32f6be102ef9d5;hpb=a6a6e77b4d317b78c13dc713f96c98d80622002e;p=fanfix.git
diff --git a/ui/ConfigEditor.java b/ui/ConfigEditor.java
deleted file mode 100644
index c687c98..0000000
--- a/ui/ConfigEditor.java
+++ /dev/null
@@ -1,165 +0,0 @@
-package be.nikiroo.utils.ui;
-
-import java.awt.BorderLayout;
-import java.awt.Color;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.swing.BoxLayout;
-import javax.swing.JButton;
-import javax.swing.JComponent;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.JScrollPane;
-import javax.swing.JTextArea;
-import javax.swing.border.EmptyBorder;
-import javax.swing.border.TitledBorder;
-
-import be.nikiroo.utils.StringUtils;
-import be.nikiroo.utils.resources.Bundle;
-import be.nikiroo.utils.resources.MetaInfo;
-
-/**
- * A configuration panel for a {@link Bundle}.
- *
- * All the items in the given {@link Bundle} will be displayed in editable
- * controls, with options to Save, Reset and/or Reset to the application default
- * values.
- *
- * @author niki
- *
- * @param
- * the type of {@link Bundle} to edit
- */
-public class ConfigEditor> extends JPanel {
- private static final long serialVersionUID = 1L;
- private List> items;
-
- /**
- * Create a new {@link ConfigEditor} for this {@link Bundle}.
- *
- * @param type
- * a class instance of the item type to work on
- * @param bundle
- * the {@link Bundle} to sort through
- * @param title
- * the title to display before the options
- */
- public ConfigEditor(Class type, final Bundle bundle, String title) {
- this.setLayout(new BorderLayout());
-
- JPanel main = new JPanel();
- main.setLayout(new BoxLayout(main, BoxLayout.PAGE_AXIS));
- main.setBorder(new EmptyBorder(5, 5, 5, 5));
-
- main.add(new JLabel(title));
-
- items = new ArrayList>();
- List> groupedItems = MetaInfo.getItems(type, bundle);
- for (MetaInfo item : groupedItems) {
- // will init this.items
- addItem(main, item, 0);
- }
-
- JPanel buttons = new JPanel();
- buttons.setLayout(new BoxLayout(buttons, BoxLayout.PAGE_AXIS));
- buttons.setBorder(new EmptyBorder(5, 5, 5, 5));
-
- buttons.add(createButton("Reset", new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- for (MetaInfo item : items) {
- item.reload();
- }
- }
- }));
-
- buttons.add(createButton("Default", new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- Object snap = bundle.takeSnapshot();
- bundle.reload(true);
- for (MetaInfo item : items) {
- item.reload();
- }
- bundle.reload(false);
- bundle.restoreSnapshot(snap);
- }
- }));
-
- buttons.add(createButton("Save", new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- for (MetaInfo item : items) {
- item.save(true);
- }
-
- try {
- bundle.updateFile();
- } catch (IOException e1) {
- e1.printStackTrace();
- }
- }
- }));
-
- JScrollPane scroll = new JScrollPane(main);
- scroll.getVerticalScrollBar().setUnitIncrement(16);
-
- this.add(scroll, BorderLayout.CENTER);
- this.add(buttons, BorderLayout.SOUTH);
- }
-
- private void addItem(JPanel main, MetaInfo item, int nhgap) {
- if (item.isGroup()) {
- JPanel bpane = new JPanel(new BorderLayout());
- bpane.setBorder(new TitledBorder(item.getName()));
- JPanel pane = new JPanel();
- pane.setBorder(new EmptyBorder(5, 5, 5, 5));
- pane.setLayout(new BoxLayout(pane, BoxLayout.Y_AXIS));
-
- String info = item.getDescription();
- info = StringUtils.justifyTexts(info, 100);
- if (!info.isEmpty()) {
- info = info + "\n";
- JTextArea text = new JTextArea(info);
- text.setWrapStyleWord(true);
- text.setOpaque(false);
- text.setForeground(new Color(100, 100, 180));
- text.setEditable(false);
- pane.add(text);
- }
-
- for (MetaInfo subitem : item) {
- addItem(pane, subitem, nhgap + 11);
- }
- bpane.add(pane, BorderLayout.CENTER);
- main.add(bpane);
- } else {
- items.add(item);
- main.add(ConfigItem.createItem(item, nhgap));
- }
- }
-
- /**
- * Add an action button for this action.
- *
- * @param title
- * the action title
- * @param listener
- * the action
- */
- private JComponent createButton(String title, ActionListener listener) {
- JButton button = new JButton(title);
- button.addActionListener(listener);
-
- JPanel panel = new JPanel();
- panel.setLayout(new BorderLayout());
- panel.setBorder(new EmptyBorder(2, 10, 2, 10));
- panel.add(button, BorderLayout.CENTER);
-
- return panel;
- }
-}