Package skyproc.gui

Source Code of skyproc.gui.LFormIDPicker

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package skyproc.gui;

import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusListener;
import java.awt.event.MouseListener;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import javax.swing.*;
import lev.gui.LButton;
import lev.gui.LUserSetting;
import lev.gui.Setting;
import skyproc.FormID;

/**
*
* @author Justin Swanson
*/
public class LFormIDPicker extends LUserSetting<FormID[]> {

    LButton add;
    LButton remove;
    JComboBox addPicker;
    DefaultListModel model;
    JList addedList;
    JScrollPane scroll;

    /**
     *
     * @param title
     * @param font
     * @param c
     */
    public LFormIDPicker(String title, Font font, Color c) {
  super(title, font, c);
  titleLabel.addShadow();
  addPicker = new JComboBox();
  addPicker.setSize(addPicker.getPreferredSize());
  addPicker.setLocation(0, titleLabel.getHeight() + 5);
  add(addPicker);
  add = new LButton("Add FormID  /\\");
  add.setLocation(0, addPicker.getY() + addPicker.getHeight() + 5);
  add.addActionListener(new ActionListener() {

      @Override
      public void actionPerformed(ActionEvent arg0) {
    for (Object o : addPicker.getSelectedObjects()) {
        if (!model.contains(o)) {
      model.addElement((FormID) o);
        }
    }
      }
  });
  add(add);
  remove = new LButton("\\/  Remove FormID");
  remove.setLocation(add.getWidth() + 5, add.getY());
  remove.addActionListener(new ActionListener() {

      @Override
      public void actionPerformed(ActionEvent arg0) {
    for (Object o : addedList.getSelectedValuesList()) {
        model.removeElement(o);
    }
      }
  });
  add(remove);
  model = new DefaultListModel();
  addedList = new JList(model);
  scroll = new JScrollPane(addedList);
  scroll.setLocation(0, add.getY() + add.getHeight() + 5);
  scroll.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
  add(scroll);
  setSize(300, 150);
    }

    /**
     *
     * @param arg0
     * @param arg1
     */
    @Override
    final public void setSize(int arg0, int arg1) {
  super.setSize(arg0, arg1);
//  titleLabel.setLocation(arg0 / 2 - titleLabel.getWidth() / 2, titleLabel.getY());
  addPicker.setSize(arg0, addPicker.getHeight());
  add.setSize((addPicker.getWidth() - 6) / 2, add.getHeight());
  remove.setSize(addPicker.getWidth() - add.getWidth() - 6, remove.getHeight());
  remove.setLocation(add.getX() + add.getWidth() + 5, remove.getY());
  scroll.setSize(arg0, arg1 - add.getY() - add.getHeight() - 5);
    }

    @Override
    protected void addUpdateHandlers() {
  add.addActionListener(new UpdateHandler());
  remove.addActionListener(new UpdateHandler());
    }

    @Override
    public boolean revertTo(Map<Enum, Setting> m) {
  if (isTied()) {
      FormID[] list = (FormID[]) m.get(saveTie).getData();
      model.removeAllElements();
      model.addElement(list);
  }
  return true;
    }

    @Override
    public FormID[] getValue() {
  FormID[] out = new FormID[addedList.getModel().getSize()];
  for (int i = 0; i < addedList.getModel().getSize(); i++) {
      out[i] = (FormID) addedList.getModel().getElementAt(i);
  }
  return out;
    }

    @Override
    public void highlightChanged() {
    }

    @Override
    public void clearHighlight() {
    }

    /**
     *
     * @param hoverListener
     */
    @Override
    public void addHelpHandler(boolean hoverListener) {
  FocusListener f = new HelpFocusHandler();
  addPicker.addFocusListener(f);
  addedList.addFocusListener(f);
  if (hoverListener) {
      MouseListener l = new HelpMouseHandler();
      addPicker.addMouseListener(l);
      addedList.addMouseListener(l);
      add.addMouseListener(l);
      remove.addMouseListener(l);
  }
    }

    /**
     *
     * @param ids
     */
    public void load(ArrayList<FormID> ids) {
  for (FormID id : ids) {
      addForm(id);
  }
    }

    /**
     *
     * @param ids
     */
    public void load(FormID[] ids) {
  for (FormID id : ids) {
      addForm(id);
  }
    }

    /**
     *
     * @param id
     */
    public void addForm(FormID id) {
  model.addElement(add);
    }

    /**
     *
     * @param ids
     */
    public void load(String[][] ids) {
  ArrayList<FormID> out = new ArrayList<FormID>(ids.length);
  for (String[] id : ids) {
      out.add(new FormID(id[0],id[1]));
  }
  load(out);
    }

    /**
     *
     * @return
     */
    public ArrayList<FormID> getPickedIDs () {
  ArrayList<FormID> out = new ArrayList<FormID>(model.getSize());
  for (int i = 0 ; i < model.getSize() ; i++) {
      out.add((FormID)model.getElementAt(i));
  }
  return out;
    }
}
TOP

Related Classes of skyproc.gui.LFormIDPicker

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.