package geniusweb.domaineditor; import java.awt.BorderLayout; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import geniusweb.actions.LoadAction; import geniusweb.actions.SaveAction; import geniusweb.actions.SaveDomainAction; import geniusweb.domaineditor.model.DomainModel; import geniusweb.domaineditor.model.profile.LinearAdditiveUtilitySpaceModel; import geniusweb.domaineditor.panels.profile.ProfileEditorPanel; import tudelft.utilities.logging.Reporter; import tudelft.utilities.mvc.panels.PopupReporter; /** * A profile editor. Basically a container for a {@link ProfileEditorPanel} plus * a menu bar. Contains components to edit domain, reservation bid, utilities * etc. */ @SuppressWarnings("serial") public class ProfileEditor extends JFrame { private final Reporter log; private final LinearAdditiveUtilitySpaceModel model; private static ProfileEditor instance = null; private ProfileEditor() { log = new PopupReporter(this); model = getSampleModel(); setLayout(new BorderLayout()); setDefaultCloseOperation(DISPOSE_ON_CLOSE); Reporter log = new PopupReporter(this); getContentPane().add(new ProfileEditorPanel(model, log), BorderLayout.CENTER); setJMenuBar(menu()); pack(); setVisible(true); } private JMenuBar menu() { JMenuBar mb = new JMenuBar(); JMenu filemenu = new JMenu("File"); filemenu.add(new LoadAction(log)); filemenu.add(new SaveAction(log)); filemenu.add(new SaveDomainAction(log)); mb.add(filemenu); JMenu helpmenu = new JMenu("Help"); mb.add(helpmenu); return mb; } private LinearAdditiveUtilitySpaceModel getSampleModel() { DomainModel domain = new DomainModel(log); LinearAdditiveUtilitySpaceModel lamodel = new LinearAdditiveUtilitySpaceModel( domain, log); return lamodel; } public static void main(String[] args) { getInstance(); } public static ProfileEditor getInstance() { if (instance == null) instance = new ProfileEditor(); return instance; } /** * . * * @return Currently active model */ public LinearAdditiveUtilitySpaceModel getModel() { return model; } }