Changeset 53 for domaineditor/src/main


Ignore:
Timestamp:
12/18/24 13:28:59 (5 days ago)
Author:
ruud
Message:

All TimeDependent parties now support the nonlinear SumOfGroupsUtilitySpace. Example Nonlinear space in the computer domain

Location:
domaineditor/src/main/java/geniusweb/domaineditor
Files:
14 edited

Legend:

Unmodified
Added
Removed
  • domaineditor/src/main/java/geniusweb/domaineditor/ProfileEditor.java

    r52 r53  
    1515import geniusweb.domaineditor.panels.profile.ProfileEditorPanel;
    1616import tudelft.utilities.logging.Reporter;
     17import tudelft.utilities.mvc.model.ModelTime;
     18import tudelft.utilities.mvc.model.NoModelTime;
    1719import tudelft.utilities.mvc.panels.PopupReporter;
    1820
     
    2426@SuppressWarnings("serial")
    2527public class ProfileEditor extends JFrame {
     28        public static ModelTime TIME = new NoModelTime();
     29
    2630        private final Reporter log;
    2731        private final LinearAdditiveUtilitySpaceModel model;
  • domaineditor/src/main/java/geniusweb/domaineditor/model/BidModel.java

    r52 r53  
    77import java.util.logging.Level;
    88
     9import geniusweb.domaineditor.ProfileEditor;
    910import geniusweb.issuevalue.Bid;
    1011import geniusweb.issuevalue.DiscreteValue;
    1112import geniusweb.issuevalue.NumberValue;
    1213import geniusweb.issuevalue.Value;
    13 import tudelft.utilities.listener.DefaultListenable;
     14import tudelft.utilities.listener.DefaultThrowingListenable;
     15import tudelft.utilities.listener.Unacceptable;
    1416import tudelft.utilities.logging.Reporter;
    1517import tudelft.utilities.mvc.model.BasicModel;
     
    1820import tudelft.utilities.mvc.model.MapFromKeys;
    1921import tudelft.utilities.mvc.model.MapModel;
     22import tudelft.utilities.mvc.model.Model;
     23import tudelft.utilities.mvc.model.ModelTime;
    2024import tudelft.utilities.mvc.model.SelectionModel;
    2125import tudelft.utilities.mvc.model.StringModel;
    22 import tudelft.utilities.mvc.model.TypedModel;
    2326import tudelft.utilities.mvc.model.events.Added;
    2427import tudelft.utilities.mvc.model.events.Changed;
     
    3841 *
    3942 */
    40 public class BidModel extends DefaultListenable<Event> implements
    41                 MapModel<StringModel, SelectionModel<BasicModel>>, TypedModel<Bid> {
     43public class BidModel extends DefaultThrowingListenable<Event>
     44                implements MapModel<StringModel, SelectionModel<BasicModel>>, Model {
    4245        private final MapModel<StringModel, ValueSetModel> issuevalues;
    4346        private final Map<StringModel, SelectionModel<BasicModel>> selections = new HashMap<>();
     
    6669
    6770        private void add(StringModel key, ListModel value) {
    68                 selections.put(key, new DefaultSelectionModel(value));
     71                selections.put(key, new DefaultSelectionModel(value, log, true));
    6972        }
    7073
    7174        /**
    7275         * Domain change occured. Handle it.
     76         *
     77         * @throws Unacceptable
    7378         */
    74         private void handleChange(Event e) {
     79        private void handleChange(Event e) throws Unacceptable {
    7580                // we only handle add/remove of issues. If a value is removed,
    7681                // this should automatically reflect into the selectionmodel.
    77                 if (!(e instanceof Changed)) {
    78                         System.out.println("Unexpected event " + e);
    79                         return;
    80                 }
     82                if (!(e instanceof Changed))
     83                        throw new Unacceptable("Unexpected event " + e);
    8184                e = e.getChildEvent();
    8285                if (e instanceof Removed) {
     
    101104        }
    102105
    103         @Override
    104106        public void remove(StringModel key) {
    105107                throw new UnsupportedOperationException();
     
    121123        }
    122124
    123         @Override
    124125        public Bid getCurrentValue() throws IllegalStateException {
    125126                Map<String, Value> selectionmap = new HashMap<>();
     
    134135        }
    135136
    136         @Override
    137137        public void setCurrentValue(Bid bid) throws IllegalArgumentException {
    138138                ListModel<StringModel> issues = issuevalues.getKeys();
     
    186186        }
    187187
     188        @Override
     189        public ModelTime getTime() {
     190                return ProfileEditor.TIME;
     191        }
     192
    188193}
  • domaineditor/src/main/java/geniusweb/domaineditor/model/DiscreteValueSetModel.java

    r52 r53  
    77import java.util.logging.Level;
    88
     9import geniusweb.domaineditor.ProfileEditor;
    910import geniusweb.issuevalue.DiscreteValue;
    1011import geniusweb.issuevalue.DiscreteValueSet;
     
    2526
    2627        public DiscreteValueSetModel(List<StringModel> values, Reporter log) {
    27                 super(values, log);
     28                super(values, log, ProfileEditor.TIME);
    2829        }
    2930
    3031        public DiscreteValueSetModel(Reporter log) {
    31                 super(Arrays.asList(new StringModel("value", log)), log);
     32                super(Arrays.asList(new StringModel("value", log, ProfileEditor.TIME)),
     33                                log, ProfileEditor.TIME);
    3234        }
    3335
     
    7880                // first add the new vals because minimum size.
    7981                for (DiscreteValue val : valset.getValues()) {
    80                         add(new StringModel(val.getValue(), log));
     82                        add(new StringModel(val.getValue(), log, ProfileEditor.TIME));
    8183                }
    8284                for (StringModel old : oldvals) {
  • domaineditor/src/main/java/geniusweb/domaineditor/model/DomainModel.java

    r52 r53  
    1616import geniusweb.issuevalue.Domain;
    1717import geniusweb.issuevalue.ValueSet;
    18 import tudelft.utilities.listener.DefaultListenable;
     18import tudelft.utilities.listener.DefaultThrowingListenable;
    1919import tudelft.utilities.logging.Reporter;
    2020import tudelft.utilities.mvc.model.DefaultMapModel;
    2121import tudelft.utilities.mvc.model.MapModel;
    2222import tudelft.utilities.mvc.model.Model;
     23import tudelft.utilities.mvc.model.ModelTime;
    2324import tudelft.utilities.mvc.model.StringModel;
    24 import tudelft.utilities.mvc.model.TypedModel;
    2525import tudelft.utilities.mvc.model.events.Changed;
    2626import tudelft.utilities.mvc.model.events.Event;
     
    3333 *
    3434 */
    35 public class DomainModel extends DefaultListenable<Event>
    36                 implements TypedModel<Domain> {
     35public class DomainModel extends DefaultThrowingListenable<Event>
     36                implements Model { // model<Domain>
    3737        private static final ObjectMapper jackson = new ObjectMapper();
    3838        private final StringModel domainname;
     
    5757                this(new SimpleStringModel("domainname", log),
    5858                                new DefaultMapModel<StringModel, ValueSetModel>(
    59                                                 Collections.singletonMap(new StringModel("issue", log),
     59                                                Collections.singletonMap(
     60                                                                new StringModel("issue", log,
     61                                                                                ProfileEditor.TIME),
    6062                                                                new DiscreteValueSetModel(log)),
    61                                                 log) {
     63                                                log, ProfileEditor.TIME) {
    6264                                        @Override
    6365                                        public int getMinimumSize() {
     
    8890                Domain domain = jackson.readValue(file, Domain.class);
    8991                // FIXME
    90                 return new DomainModel(new StringModel(domain.getName(), log), null,
    91                                 log);
     92                return new DomainModel(
     93                                new StringModel(domain.getName(), log, ProfileEditor.TIME),
     94                                null, log);
    9295        }
    9396
     
    112115         * @return the {@link Domain} contained in this model.
    113116         */
    114         @Override
    115117        public Domain getCurrentValue() throws IllegalStateException {
    116118                Map<String, ValueSet> issues = new HashMap<>();
     
    131133         *            {@link Model}s are created where needed.
    132134         */
    133         @Override
    134135        public void setCurrentValue(Domain dom) throws IllegalArgumentException {
    135136                domainname.setValue(dom.getName());
     
    145146                                        ValueSetModelType.fromModel(dom.getValues(iss)), log);
    146147                        valsetmodel.setCurrentValue(dom.getValues(iss));
    147                         issuesmodel.put(new StringModel(iss, log), valsetmodel);
     148                        issuesmodel.put(new StringModel(iss, log, ProfileEditor.TIME),
     149                                        valsetmodel);
    148150                }
    149151                // remove the old issues
    150152                for (StringModel iss : oldissues)
    151                         issuesmodel.remove(iss);
     153                        issuesmodel.getKeys().remove(iss);
     154        }
     155
     156        @Override
     157        public ModelTime getTime() {
     158                return ProfileEditor.TIME;
    152159        }
    153160}
  • domaineditor/src/main/java/geniusweb/domaineditor/model/NumberValueSetModel.java

    r52 r53  
    55import java.util.Map;
    66
     7import geniusweb.domaineditor.ProfileEditor;
    78import geniusweb.issuevalue.NumberValueSet;
    89import geniusweb.issuevalue.ValueSet;
    910import tudelft.utilities.immutablelist.Range;
    10 import tudelft.utilities.listener.DefaultListenable;
     11import tudelft.utilities.listener.DefaultThrowingListenable;
     12import tudelft.utilities.listener.Unacceptable;
    1113import tudelft.utilities.logging.Reporter;
    1214import tudelft.utilities.mvc.model.BasicModel;
    1315import tudelft.utilities.mvc.model.ListModel;
     16import tudelft.utilities.mvc.model.ModelTime;
    1417import tudelft.utilities.mvc.model.NumberModel;
    1518import tudelft.utilities.mvc.model.events.Changed;
     
    2023 *
    2124 */
    22 public class NumberValueSetModel extends DefaultListenable<Event>
     25public class NumberValueSetModel extends DefaultThrowingListenable<Event>
    2326                implements ValueSetModel {
    2427
     
    2730
    2831        public NumberValueSetModel(NumberModel lowv, NumberModel highv,
    29                         NumberModel stepv, Reporter log) {
     32                        NumberModel stepv, Reporter log) throws Unacceptable {
    3033                this.low = lowv;
    3134                this.high = highv;
     
    4144        }
    4245
    43         private void check() throws IllegalStateException {
     46        private void check() throws Unacceptable {
    4447                if (low.getValue().compareTo(high.getValue()) > 0)
    45                         throw new IllegalStateException("low must be <= high");
     48                        throw new Unacceptable("low must be <= high");
    4649                if (step.getValue().compareTo(BigDecimal.ZERO) <= 0)
    47                         throw new IllegalStateException("step must be >0");
     50                        throw new Unacceptable("step must be >0");
    4851                notifyListeners(new Changed(this, null));
    4952        }
     
    5154        /*
    5255         * Default, bit arbitrary values.
     56         *
     57         * @throws something that should never happen
    5358         */
    54         public NumberValueSetModel(Reporter log) {
    55                 this(new NumberModel(BigDecimal.ZERO, log),
    56                                 new NumberModel(BigDecimal.TEN, log),
    57                                 new NumberModel(BigDecimal.ONE, log), log);
     59        public NumberValueSetModel(Reporter log) throws Unacceptable {
     60                this(new NumberModel(BigDecimal.ZERO, log, ProfileEditor.TIME),
     61                                new NumberModel(BigDecimal.TEN, log, ProfileEditor.TIME),
     62                                new NumberModel(BigDecimal.ONE, log, ProfileEditor.TIME), log);
    5863        }
    5964
     
    116121        }
    117122
     123        @Override
     124        public ModelTime getTime() {
     125                return ProfileEditor.TIME;
     126        }
     127
    118128}
    119129
     
    122132 *
    123133 */
    124 class MyListModel extends DefaultListenable<Event>
     134class MyListModel extends DefaultThrowingListenable<Event>
    125135                implements ListModel<NumberModel> {
    126136
     
    143153                BigDecimal val = numvalset.getCurrentValue().getRange().get(n);
    144154                if (!itemsCache.containsKey(val))
    145                         itemsCache.put(val, new NumberModel(val, numvalset.log));
     155                        itemsCache.put(val,
     156                                        new NumberModel(val, numvalset.log, ProfileEditor.TIME));
    146157                return itemsCache.get(val);
    147158        }
     
    168179        }
    169180
     181        @Override
     182        public ModelTime getTime() {
     183                return ProfileEditor.TIME;
     184        }
     185
    170186}
  • domaineditor/src/main/java/geniusweb/domaineditor/model/SimpleStringModel.java

    r52 r53  
    11package geniusweb.domaineditor.model;
    22
     3import geniusweb.domaineditor.ProfileEditor;
     4import tudelft.utilities.listener.Unacceptable;
    35import tudelft.utilities.logging.Reporter;
    46import tudelft.utilities.mvc.model.StringModel;
     
    1012
    1113        public SimpleStringModel(String val, Reporter log) {
    12                 super(val, log);
     14                super(val, log, ProfileEditor.TIME);
    1315        }
    1416
    1517        @Override
    16         protected void check() throws IllegalStateException {
     18        protected void check() throws Unacceptable {
    1719                if (!(getValue().matches("[a-zA-Z0-9]+")))
    18                         throw new IllegalStateException(
     20                        throw new Unacceptable(
    1921                                        "Only lower and upper case letters and numbers are allowed");
    2022                super.check();
  • domaineditor/src/main/java/geniusweb/domaineditor/model/ValueSetModel.java

    r52 r53  
    44import tudelft.utilities.mvc.model.BasicModel;
    55import tudelft.utilities.mvc.model.ListModel;
    6 import tudelft.utilities.mvc.model.TypedModel;
     6import tudelft.utilities.mvc.model.Model;
    77
    88/**
     
    1111 *
    1212 */
    13 public interface ValueSetModel extends TypedModel<ValueSet> {
     13public interface ValueSetModel extends Model {
    1414        /**
    1515         *
     
    2525        public ListModel<? extends BasicModel> getList();
    2626
     27        /**
     28         *
     29         * @return the currently contained value in the model. We do NOT specify the
     30         *         type of the returned object because it would have to be a type
     31         *         parameter added to Model, which leads to all kinds of issues with
     32         *         excessive parameterization and issues when a class extends eg a
     33         *         MapModel. NOTE: also derived classes like ListModel should not
     34         *         specify that they return {@link List} or so: further subclassing
     35         *         of eg a ListModel might be eg a ValueSet which would not return a
     36         *         List again.
     37         * @throws IllegalStateException if the model is not correctly filled in at
     38         *                               this moment.
     39         */
     40        public ValueSet getCurrentValue() throws IllegalStateException;
     41
     42        /**
     43         * Sets the current value based on the proviced obj
     44         *
     45         * @param obj the object to load the model with. Mirror of
     46         *            {@link #getCurrentValue()} and the Object is the same type.
     47         * @throws IllegalArgumentException if the object is not the expected object
     48         *                                  type
     49         */
     50        public void setCurrentValue(ValueSet obj) throws IllegalArgumentException;
     51
    2752}
  • domaineditor/src/main/java/geniusweb/domaineditor/model/ValueSetModelType.java

    r52 r53  
    44import geniusweb.issuevalue.NumberValueSet;
    55import geniusweb.issuevalue.ValueSet;
     6import tudelft.utilities.listener.Unacceptable;
    67import tudelft.utilities.logging.Reporter;
    78
     
    5758                        return new DiscreteValueSetModel(log);
    5859                case NUMBER:
    59                         return new NumberValueSetModel(log);
     60                        try {
     61                                return new NumberValueSetModel(log);
     62                        } catch (Unacceptable e) {
     63                                throw new RuntimeException(e);// shouldn't happen
     64                        }
    6065                }
    6166                return null; // unreachable code
  • domaineditor/src/main/java/geniusweb/domaineditor/model/profile/DiscreteValueSetUtilitiesModel.java

    r52 r53  
    55import java.util.Map;
    66
     7import geniusweb.domaineditor.ProfileEditor;
    78import geniusweb.domaineditor.model.DiscreteValueSetModel;
    89import geniusweb.issuevalue.DiscreteValue;
    910import geniusweb.profile.utilityspace.DiscreteValueSetUtilities;
    1011import geniusweb.profile.utilityspace.ValueSetUtilities;
    11 import tudelft.utilities.listener.DefaultListenable;
     12import tudelft.utilities.listener.DefaultThrowingListenable;
     13import tudelft.utilities.listener.Unacceptable;
    1214import tudelft.utilities.logging.Reporter;
    1315import tudelft.utilities.mvc.model.ListModel;
    1416import tudelft.utilities.mvc.model.MapModel;
     17import tudelft.utilities.mvc.model.ModelTime;
    1518import tudelft.utilities.mvc.model.NumberModel;
    1619import tudelft.utilities.mvc.model.RestrictedNumberModel;
     
    2629 *
    2730 */
    28 public class DiscreteValueSetUtilitiesModel extends DefaultListenable<Event>
    29                 implements MapModel<StringModel, RestrictedNumberModel>,
    30                 ValueSetUtilitiesModel {
     31public class DiscreteValueSetUtilitiesModel
     32                extends DefaultThrowingListenable<Event> implements
     33                MapModel<StringModel, RestrictedNumberModel>, ValueSetUtilitiesModel {
     34
    3135        private final ListModel<StringModel> values;
    3236        private final Map<StringModel, RestrictedNumberModel> utilities = new HashMap<>();
     
    3741        private final static Reporter dummylog = new PopupReporter(null);
    3842        private final static NumberModel LOW = new NumberModel(BigDecimal.ZERO,
    39                         dummylog);
     43                        dummylog, ProfileEditor.TIME);
    4044        private final static NumberModel HIGH = new NumberModel(BigDecimal.ONE,
    41                         dummylog);
     45                        dummylog, ProfileEditor.TIME);
    4246
    4347        public DiscreteValueSetUtilitiesModel(DiscreteValueSetModel values,
     
    5054        public RestrictedNumberModel getValue(StringModel key) {
    5155                if (!utilities.containsKey(key)) {
    52                         utilities.put(key,
    53                                         new RestrictedNumberModel(DEFAULT, LOW, HIGH, log));
     56                        try {
     57                                utilities.put(key, new RestrictedNumberModel(DEFAULT, LOW, HIGH,
     58                                                log, ProfileEditor.TIME));
     59                        } catch (Unacceptable e) {
     60                                throw new RuntimeException(e);// this should not happen
     61                        }
    5462                }
    5563                return utilities.get(key);
     
    6169        }
    6270
    63         @Override
    6471        public void remove(StringModel key) {
    6572                throw new UnsupportedOperationException();
     
    113120        }
    114121
     122        @Override
     123        public ModelTime getTime() {
     124                return ProfileEditor.TIME;
     125        }
     126
    115127}
  • domaineditor/src/main/java/geniusweb/domaineditor/model/profile/LinearAdditiveUtilitySpaceModel.java

    r52 r53  
    88import java.util.stream.Collectors;
    99
     10import geniusweb.domaineditor.ProfileEditor;
    1011import geniusweb.domaineditor.model.BidModel;
    1112import geniusweb.domaineditor.model.DiscreteValueSetModel;
     
    1617import geniusweb.profile.utilityspace.LinearAdditiveUtilitySpace;
    1718import geniusweb.profile.utilityspace.ValueSetUtilities;
    18 import tudelft.utilities.listener.DefaultListenable;
     19import tudelft.utilities.listener.DefaultThrowingListenable;
     20import tudelft.utilities.listener.Unacceptable;
    1921import tudelft.utilities.logging.Reporter;
    2022import tudelft.utilities.mvc.model.ListModel;
    2123import tudelft.utilities.mvc.model.MapFromKeys;
    2224import tudelft.utilities.mvc.model.MapModel;
     25import tudelft.utilities.mvc.model.Model;
     26import tudelft.utilities.mvc.model.ModelTime;
    2327import tudelft.utilities.mvc.model.NumberModel;
    2428import tudelft.utilities.mvc.model.RestrictedNumberModel;
    2529import tudelft.utilities.mvc.model.StringModel;
    26 import tudelft.utilities.mvc.model.TypedModel;
    2730import tudelft.utilities.mvc.model.events.Event;
    2831import tudelft.utilities.mvc.panels.PopupReporter;
     
    3134 * Model containing a {@link LinearAdditiveUtilitySpace}
    3235 */
    33 public class LinearAdditiveUtilitySpaceModel extends DefaultListenable<Event>
    34                 implements ProfileModel, TypedModel<LinearAdditiveUtilitySpace> {
     36public class LinearAdditiveUtilitySpaceModel extends
     37                DefaultThrowingListenable<Event> implements ProfileModel, Model { // Model<<LinearAdditiveUtilitySpace>>
    3538        private final SimpleStringModel name;
    3639        /**
     
    8790        // we should never allow editing of these constants.
    8891        protected static final NumberModel CONSTANT0 = new NumberModel(
    89                         BigDecimal.ZERO, dummylog);
     92                        BigDecimal.ZERO, dummylog, ProfileEditor.TIME);
    9093        protected static final NumberModel CONSTANT1 = new NumberModel(
    91                         BigDecimal.ONE, dummylog);
     94                        BigDecimal.ONE, dummylog, ProfileEditor.TIME);
    9295
    9396        public LinearAdditiveUtilitySpaceModel(DomainModel domain,
     
    108111                        final DomainModel domain2, final Reporter log) {
    109112                return new MapFromKeys<StringModel, RestrictedNumberModel>(
    110                                 domain2.getIssues().getKeys(), log, true) {
     113                                domain2.getIssues().getKeys(), log, true, ProfileEditor.TIME) {
    111114
    112115                        @Override
    113116                        public RestrictedNumberModel create(StringModel key) {
    114                                 return new RestrictedNumberModel(N05, CONSTANT0, CONSTANT1,
    115                                                 log);
     117                                try {
     118                                        return new RestrictedNumberModel(N05, CONSTANT0, CONSTANT1,
     119                                                        log, ProfileEditor.TIME);
     120                                } catch (Unacceptable e) {
     121                                        throw new RuntimeException(e); // shouldn't happen
     122                                }
    116123                        }
    117124
     
    129136                // different type
    130137                return new MapFromKeys<StringModel, ValueSetUtilitiesModel>(
    131                                 domain2.getIssues().getKeys(), log, false) {
     138                                domain2.getIssues().getKeys(), log, false, ProfileEditor.TIME) {
    132139                        @Override
    133140                        public ValueSetUtilitiesModel create(StringModel key) {
     
    137144                                                        (DiscreteValueSetModel) val, log);
    138145                                if (val instanceof NumberValueSetModel)
    139                                         return new NumberValueSetUtilitiesModel(
    140                                                         (NumberValueSetModel) val, log);
     146                                        try {
     147                                                return new NumberValueSetUtilitiesModel(
     148                                                                (NumberValueSetModel) val, log);
     149                                        } catch (Unacceptable e) {
     150                                                throw new RuntimeException(e); // shouldn't happen
     151                                        }
    141152                                throw new RuntimeException(
    142153                                                "Unsupported type " + val + "for key" + key);
     
    190201        }
    191202
    192         @Override
    193203        public LinearAdditiveUtilitySpace getCurrentValue()
    194204                        throws IllegalStateException {
     
    212222        }
    213223
    214         @Override
    215224        public void setCurrentValue(LinearAdditiveUtilitySpace obj)
    216225                        throws IllegalArgumentException {
     
    258267        }
    259268
     269        @Override
     270        public ModelTime getTime() {
     271                return ProfileEditor.TIME;
     272        }
     273
    260274}
  • domaineditor/src/main/java/geniusweb/domaineditor/model/profile/NumberValueSetUtilitiesModel.java

    r52 r53  
    33import java.math.BigDecimal;
    44
     5import geniusweb.domaineditor.ProfileEditor;
    56import geniusweb.domaineditor.model.NumberValueSetModel;
    67import geniusweb.profile.utilityspace.NumberValueSetUtilities;
    78import geniusweb.profile.utilityspace.ValueSetUtilities;
    8 import tudelft.utilities.listener.DefaultListenable;
     9import tudelft.utilities.listener.DefaultThrowingListenable;
     10import tudelft.utilities.listener.Unacceptable;
    911import tudelft.utilities.logging.Reporter;
     12import tudelft.utilities.mvc.model.ModelTime;
    1013import tudelft.utilities.mvc.model.NumberModel;
    1114import tudelft.utilities.mvc.model.RestrictedNumberModel;
     
    1720 *
    1821 */
    19 public class NumberValueSetUtilitiesModel extends DefaultListenable<Event>
    20                 implements ValueSetUtilitiesModel {
     22public class NumberValueSetUtilitiesModel extends
     23                DefaultThrowingListenable<Event> implements ValueSetUtilitiesModel {
    2124
    2225        private static final BigDecimal DEFAULT = new BigDecimal("0.5");
     
    2528        private final static Reporter dummylog = new PopupReporter(null);
    2629        private final static NumberModel LOW = new NumberModel(BigDecimal.ZERO,
    27                         dummylog);
     30                        dummylog, ProfileEditor.TIME);
    2831        private final static NumberModel HIGH = new NumberModel(BigDecimal.ONE,
    29                         dummylog);
     32                        dummylog, ProfileEditor.TIME);
    3033        private final NumberModel lowValue;
    3134        private final RestrictedNumberModel lowUtility;
     
    4952        }
    5053
    51         NumberValueSetUtilitiesModel(NumberValueSetModel valuesmodel,
    52                         Reporter log) {
     54        NumberValueSetUtilitiesModel(NumberValueSetModel valuesmodel, Reporter log)
     55                        throws Unacceptable {
    5356                this(valuesmodel.getLow(),
    54                                 new RestrictedNumberModel(DEFAULT, LOW, HIGH, log),
    55                                 valuesmodel.getHigh(),
    56                                 new RestrictedNumberModel(DEFAULT, LOW, HIGH, log));
     57                                new RestrictedNumberModel(DEFAULT, LOW, HIGH, log,
     58                                                ProfileEditor.TIME),
     59                                valuesmodel.getHigh(), new RestrictedNumberModel(DEFAULT, LOW,
     60                                                HIGH, log, ProfileEditor.TIME));
    5761        }
    5862
     
    9599                highUtility.setValue(utils.getHighUtility());
    96100        }
     101
     102        @Override
     103        public ModelTime getTime() {
     104                return ProfileEditor.TIME;
     105        }
    97106};
  • domaineditor/src/main/java/geniusweb/domaineditor/model/profile/ValueSetUtilitiesModel.java

    r52 r53  
    22
    33import geniusweb.profile.utilityspace.ValueSetUtilities;
    4 import tudelft.utilities.mvc.model.TypedModel;
     4import tudelft.utilities.mvc.model.Model;
    55
    66/**
     
    88 *
    99 */
    10 public interface ValueSetUtilitiesModel extends TypedModel<ValueSetUtilities> {
     10public interface ValueSetUtilitiesModel extends Model {
     11
     12        void setCurrentValue(ValueSetUtilities valueSetUtilities);
     13
     14        ValueSetUtilities getCurrentValue();
    1115
    1216}
  • domaineditor/src/main/java/geniusweb/domaineditor/panels/DiscreteValueSetPanel.java

    r52 r53  
    55import javax.swing.JPanel;
    66
     7import geniusweb.domaineditor.ProfileEditor;
    78import geniusweb.domaineditor.model.DiscreteValueSetModel;
    89import tudelft.utilities.logging.Reporter;
     
    2425                setLayout(new BorderLayout());
    2526                add(new EditableListViewPanel(model.getList()) {
     27
    2628                        @Override
    2729                        protected void addItem() {
    28                                 model.add(new StringModel("value " + (n++), log));
     30                                model.add(new StringModel("value " + (n++), log,
     31                                                ProfileEditor.TIME));
    2932
    3033                        }
  • domaineditor/src/main/java/geniusweb/domaineditor/panels/DomainEditorPanel.java

    r52 r53  
    99import javax.swing.JPanel;
    1010
     11import geniusweb.domaineditor.ProfileEditor;
    1112import geniusweb.domaineditor.model.DiscreteValueSetModel;
    1213import geniusweb.domaineditor.model.DomainModel;
    1314import geniusweb.domaineditor.model.NumberValueSetModel;
    1415import geniusweb.domaineditor.model.ValueSetModel;
     16import tudelft.utilities.listener.Unacceptable;
    1517import tudelft.utilities.logging.Reporter;
    1618import tudelft.utilities.mvc.model.MapModel;
     
    3941
    4042                add(new LabeledPanel("domain name ",
    41                                 new StringPanel(domainmodel.getName())),
    42                                 BorderLayout.NORTH);
     43                                new StringPanel(domainmodel.getName())), BorderLayout.NORTH);
    4344                add(new IssuesMapEditor(domainmodel.getIssues(), log),
    4445                                BorderLayout.CENTER);
     
    8283                panel.add(combo, BorderLayout.CENTER);
    8384                JOptionPane.showMessageDialog(this, panel);
    84                 StringModel issuename = new StringModel("issue " + (n++), logger);
     85                StringModel issuename = new StringModel("issue " + (n++), logger,
     86                                ProfileEditor.TIME);
    8587                ValueSetModel valuesetmodel;
    8688                if (combo.getSelectedItem().equals("discrete"))
    8789                        valuesetmodel = new DiscreteValueSetModel(logger);
    8890                else
    89                         valuesetmodel = new NumberValueSetModel(logger);
     91                        try {
     92                                valuesetmodel = new NumberValueSetModel(logger);
     93                        } catch (Unacceptable e) {
     94                                throw new RuntimeException(e);// shouldn't happen
     95                        }
    9096                getModel().put(issuename, valuesetmodel);
    9197
Note: See TracChangeset for help on using the changeset viewer.