Changeset 740


Ignore:
Timestamp:
May 2, 2014, 9:55:11 PM (5 years ago)
Author:
eelkevanderhorst@…
Message:
 
Location:
trunk/skotch/src/main/java/nl
Files:
1 added
4 deleted
13 edited
9 moved

Legend:

Unmodified
Added
Removed
  • trunk/skotch/src/main/java/nl/eelkevanderhorst/sve/gui/domain/impl/RepositoryService.java

    r736 r740  
    5959                else
    6060                {
    61                         template = "New PlainLiteralPM (%d)";
     61                        template = "New PlainLiteralItemPM (%d)";
    6262                        pred = ValueProperty.RdfsLabel.getUri();
    6363                }
  • trunk/skotch/src/main/java/nl/eelkevanderhorst/sve/gui/domain/impl/SkosServiceImpl.java

    r736 r740  
    124124       
    125125        public static final String DEFAULT_LANG = "en";
     126
     127        private static SkosServiceImpl _instance;
    126128       
    127129//      private Repository repository;
     
    222224                return result;         
    223225        }
     226       
     227       
     228        public static SkosService instance()
     229        {
     230                if (_instance == null)
     231                {
     232                        _instance = new SkosServiceImpl();
     233                }
     234               
     235                return _instance;
     236        }
    224237
    225238       
     
    239252        {
    240253                String queryConceptSchemes = "PREFIX skos: <" + SKOS.NAMESPACE + ">\n" +
    241                                 "SELECT ?result WHERE " +
    242                                 " { ?result a skos:ConceptScheme . " +
    243                                 "   FILTER EXISTS " +
    244                                 "  { ?concept skos:inScheme ?result ; " +
    245                                 "             skos:topConceptOf ?result ." +
    246                                 "    ?result skos:hasTopConcept ?concept . } }";
     254                                "SELECT DISTINCT ?result WHERE " +
     255                                " { OPTIONAL { ?concept skos:inScheme ?result } " +
     256                                "   OPTIONAL { ?concept skos:topConceptOf ?result } " +
     257                                "   OPTIONAL { ?result skos:hasTopConcept ?concept } }";
    247258
    248259                Set<Value> values = query(queryConceptSchemes, ImmutableMap.of("concept", (Value)concept.getUri()));
     
    252263        }
    253264
    254         private Set<Value> query(String queryConceptSchemes,
    255                         Map<String, Value> bindings)
    256         {
    257                 return RepositoryService.instance().getQueryProcessor().doSetQueryWithBindings(queryConceptSchemes, bindings);
    258         }
    259 
    260 
    261 
    262 
    263265        @Override
    264266        public boolean isTopConceptOf(Concept concept, ConceptScheme conceptScheme)
    265267        {
    266                 return false;
     268                String queryIsTopConceptOf = "PREFIX skos: <" + SKOS.NAMESPACE + ">\n" +
     269                                "ASK WHERE " +
     270                                " { { ?concept skos:topConceptOf ?scheme } UNION " +
     271                                "   { ?scheme skos:hasTopConcept ?concept } } ";
     272
     273                boolean result = booleanQuery(queryIsTopConceptOf,
     274                                ImmutableMap.of("concept", (Value)concept.getUri(),
     275                                                "scheme", (Value)conceptScheme.getUri()));
     276
     277                return result;
    267278        }
    268279
     
    271282                        ConceptScheme conceptScheme)
    272283        {
    273                 return false;
     284                String queryIsTopConceptOf = "PREFIX skos: <" + SKOS.NAMESPACE + ">\n" +
     285                                "ASK WHERE " +
     286                                " { ?concept skos:broader ?concept2 .} " +
     287                                "   { ?scheme skos:hasTopConcept ?concept } } ";
     288
     289                boolean result = booleanQuery(queryIsTopConceptOf,
     290                                ImmutableMap.of("concept", (Value)concept.getUri(),
     291                                                "scheme", (Value)conceptScheme.getUri()));
     292
     293                return result;
    274294        }
    275295
     
    373393        }
    374394
     395
     396
     397
     398        private Set<Value> query(String queryConceptSchemes,
     399                        Map<String, Value> bindings)
     400        {
     401                return RepositoryService.instance().getQueryProcessor().doSetQueryWithBindings(queryConceptSchemes, bindings);
     402        }
     403
     404
     405
     406
     407        private boolean booleanQuery(String queryConceptSchemes,
     408                        Map<String, Value> bindings)
     409        {
     410                return RepositoryService.instance().getQueryProcessor().doBooleanQueryWithBindings(queryConceptSchemes, bindings);
     411        }
     412
    375413}
  • trunk/skotch/src/main/java/nl/uva/amc/skosutils/QueryProcessor.java

    r736 r740  
    486486                        try
    487487                        {
    488                                 BooleanQuery tquery =
     488                                BooleanQuery bquery =
    489489                                        conn.prepareBooleanQuery(QueryLanguage.SPARQL, queryString);
    490                                 result = tquery.evaluate();
     490                                result = bquery.evaluate();
     491                        }
     492                        finally
     493                        {
     494                                this.closeConnection();
     495                        }
     496                }
     497                catch (OpenRDFException e)
     498                {
     499                        e.printStackTrace();
     500                }
     501
     502                return result;
     503        }
     504
     505
     506        public boolean doBooleanQueryWithBindings(String queryString, Map<String, ? extends Value> bindings)
     507        {
     508                boolean result = false;
     509
     510                try
     511                {
     512                        RepositoryConnection conn = this.getConnection();
     513
     514                        try
     515                        {
     516                                BooleanQuery bquery =
     517                                        conn.prepareBooleanQuery(QueryLanguage.SPARQL, queryString);
     518                               
     519                                if (bindings != null)
     520                                {
     521                                        for (Entry<String, ? extends Value> entry : bindings.entrySet())
     522                                        {
     523                                                bquery.setBinding(entry.getKey(), entry.getValue());
     524                                        }
     525                                }
     526
     527                                result = bquery.evaluate();
    491528                        }
    492529                        finally
  • trunk/skotch/src/main/java/nl/uva/amc/skotch/core/skos/model/RdfProperty.java

    r711 r740  
    33import java.util.Set;
    44
     5import nl.eelkevanderhorst.sve.gui.domain.DataProperty;
     6
    57import org.openrdf.model.URI;
    68
    79
    8 public interface RdfProperty
     10public interface RdfProperty
     11        extends DataProperty // TODO: remove/collapse DataProperty and RdfProperty
    912{
    1013
  • trunk/skotch/src/main/java/nl/uva/amc/skotch/core/skos/model/SkosConcept.java

    r707 r740  
    33import java.util.Set;
    44
     5import nl.eelkevanderhorst.sve.gui.domain.Concept;
    56import nl.uva.amc.skotch.core.skos.model.impl.SkosRelationPropertyImpl;
    67
    78
    8 public interface SkosConcept extends SkosElement
     9public interface SkosConcept extends SkosElement,
     10        Concept // TODO: Collapse
    911{
    1012
  • trunk/skotch/src/main/java/nl/uva/amc/skotch/core/skos/model/SkosConceptScheme.java

    r707 r740  
    33import java.util.Set;
    44
     5import nl.eelkevanderhorst.sve.gui.domain.ConceptScheme;
    56
    6 public interface SkosConceptScheme extends SkosElement
     7
     8public interface SkosConceptScheme extends SkosElement,
     9        ConceptScheme // TODO: Collapse
    710{
    811        /**
  • trunk/skotch/src/main/java/nl/uva/amc/skotch/gui/MainWindow.java

    r736 r740  
    33import java.awt.Dimension;
    44import java.awt.event.KeyEvent;
    5 import java.lang.reflect.Field;
    6 import java.util.Arrays;
    75
    86import javax.swing.ActionMap;
    9 import javax.swing.Icon;
    107import javax.swing.JMenu;
    118import javax.swing.JMenuBar;
     
    1411import javax.swing.JToolBar;
    1512
    16 import nl.eelkevanderhorst.sve.gui.domain.impl.SkosServiceImpl;
    1713import nl.uva.amc.skotch.SkosVocabularyEditor;
    1814import nl.uva.amc.skotch.gui.components.StatusBar;
    19 import nl.uva.amc.skotch.gui.view.details.DetailsController;
     15import nl.uva.amc.skotch.gui.view.details.DetailsView;
    2016import nl.uva.amc.skotch.gui.view.tree.TreeView;
    2117import nl.uva.amc.skotch.undo.UndoModel;
    2218
    23 import org.beanfabrics.Path;
    24 import org.beanfabrics.PathEvaluation;
    25 import org.beanfabrics.model.PresentationModel;
    2619import org.jdesktop.application.Application;
    2720import org.jdesktop.application.ApplicationContext;
    2821import org.jdesktop.application.FrameView;
    29 import org.jdesktop.application.ResourceMap;
    3022import org.slf4j.Logger;
    3123import org.slf4j.LoggerFactory;
     
    3527{
    3628        private TreeView treePanel;
    37         private DetailsController detailsController; // Concept(Scheme) details etc.
     29//      private DetailsController detailsController; // Concept(Scheme) details etc.
     30        private DetailsView detailsPanel;
    3831
    3932        private SkosVocabularyEditor sve;
     
    6053                this.setStatusBar(new StatusBar());
    6154
    62                 this.detailsController = new DetailsController(new SkosServiceImpl());
     55//              this.detailsController = new DetailsController(new SkosServiceImpl());
     56                this.detailsPanel = new DetailsView();
    6357
    6458
    6559                JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,
    66                                 this.treePanel, this.detailsController.getView());
     60                                this.treePanel, this.detailsPanel);
    6761                splitPane.setName("mainHorizontalSplitter");
    6862
     
    8377        {
    8478                this.treePanel.initGui();
    85                 this.detailsController.getView().initGui();
     79                this.detailsPanel.initGui();
    8680               
    8781                this.treePanel.requestFocusInWindow();
     
    108102
    109103
    110         public DetailsController getDetailsController()
    111         {
    112                 return this.detailsController;
    113         }
    114 
     104        public DetailsView getDetailsPanel()
     105        {
     106                return this.detailsPanel;
     107        }
    115108
    116109        /**
  • trunk/skotch/src/main/java/nl/uva/amc/skotch/gui/main/ActiveElement.java

    r736 r740  
    11package nl.uva.amc.skotch.gui.main;
    22
    3 import static javax.swing.BorderFactory.createBevelBorder;
    4 
    5 import java.util.ArrayList;
    63import java.util.Arrays;
    74import java.util.Enumeration;
    8 import java.util.List;
    95import java.util.Set;
    106
     
    2218import nl.uva.amc.skotch.core.skos.model.SkosConceptScheme;
    2319import nl.uva.amc.skotch.core.skos.model.SkosElement;
    24 import nl.uva.amc.skotch.gui.view.details.DetailsPM;
     20import nl.uva.amc.skotch.gui.view.details.DetailsView;
    2521import nl.uva.amc.skotch.gui.view.tree.TreeUtils;
    2622import nl.uva.amc.skotch.gui.view.tree.VocabTreeModel;
     
    4036        private JTree tree;
    4137        private TreePath currpath;
    42         private DetailsPM detailsPM;
    43                
    44        
    45         public void install(JTree theTree, DetailsPM pm) // TODO: Change for TreeSelectionModel
     38        private DetailsView detailsPM;
     39               
     40       
     41        public void install(JTree theTree, DetailsView pm) // TODO: Change for TreeSelectionModel
    4642        {
    4743                this.tree = theTree;
  • trunk/skotch/src/main/java/nl/uva/amc/skotch/gui/main/Presenter.java

    r736 r740  
    88import javax.swing.JTree;
    99
    10 import nl.uva.amc.skosutils.ConnectionToHandlerAdapter;
    11 import nl.uva.amc.skosutils.QueryProcessor;
    12 import nl.uva.amc.skotch.Settings;
    1310import nl.uva.amc.skotch.core.commands.AddLiteralsCommand;
    1411import nl.uva.amc.skotch.core.commands.AddRelationsCommand;
     
    3330import nl.uva.amc.skotch.core.skos.model.utils.RelationUtils;
    3431import nl.uva.amc.skotch.gui.MainWindow;
    35 import nl.uva.amc.skotch.gui.view.details.DetailsPM;
     32import nl.uva.amc.skotch.gui.view.details.DetailsView;
    3633import nl.uva.amc.skotch.gui.view.tree.TreeView;
    3734import nl.uva.amc.skotch.gui.view.tree.VocabTreeModel;
     
    4340import org.openrdf.model.URI;
    4441import org.openrdf.model.Value;
    45 import org.openrdf.model.ValueFactory;
    4642import org.slf4j.Logger;
    4743import org.slf4j.LoggerFactory;
     
    7369                {
    7470                        treeModel.clear();
    75                         detailsPM.setSelectedElementPath(null);
     71                        detailsView.setSelectedElementPath(null);
    7672                       
    7773                        if (!cleared)
     
    9591                               
    9692                                treeModel.addScheme(scheme);
    97                                 detailsPM.getSkosModelHandler().schemeCreated(model, scheme);
     93                                detailsView.getSkosModelHandler().schemeCreated(model, scheme);
    9894                        }
    9995                        else if (element instanceof SkosConcept)
     
    10298                               
    10399                                treeModel.addConcept(concept);
    104                                 detailsPM.getSkosModelHandler().conceptCreated(model, concept);
     100                                detailsView.getSkosModelHandler().conceptCreated(model, concept);
    105101                        }
    106102                }
     
    115111                               
    116112                                treeModel.removeScheme(scheme);
    117                                 detailsPM.getSkosModelHandler().schemeDeleted(model, scheme);
     113                                detailsView.getSkosModelHandler().schemeDeleted(model, scheme);
    118114                        }
    119115                        else if (element instanceof SkosConcept)
     
    122118                               
    123119                                treeModel.removeConcept(concept);       
    124                                 detailsPM.getSkosModelHandler().conceptDeleted(model, concept);
     120                                detailsView.getSkosModelHandler().conceptDeleted(model, concept);
    125121                        }
    126122                }
     
    131127                {
    132128                        treeModel.valueChanged(elem, type, value);
    133                         detailsPM.getSkosModelHandler().valueAdded(skosmodel, elem, type, value);
     129                        detailsView.getSkosModelHandler().valueAdded(skosmodel, elem, type, value);
    134130                }
    135131               
     
    139135                {
    140136                        treeModel.valueChanged(elem, type, value);
    141                         detailsPM.getSkosModelHandler().valueRemoved(skosmodel, elem, type, value);
     137                        detailsView.getSkosModelHandler().valueRemoved(skosmodel, elem, type, value);
    142138                }
    143139
     
    237233                                               
    238234                                                treeModel.setTopConcept(srcConcept, dstConceptScheme, true);
    239                                                 detailsPM.getSkosModelHandler().topConceptForSchemeChanged(skosmodel, srcConcept, dstConceptScheme, true);
     235                                                detailsView.getSkosModelHandler().topConceptForSchemeChanged(skosmodel, srcConcept, dstConceptScheme, true);
    240236                                        }
    241237                                        else if (relations.size() == 0) // Inscheme just set.
    242238                                        {
    243239                                                treeModel.addConceptToScheme(srcConcept, dstConceptScheme);
    244                                                 detailsPM.getSkosModelHandler().conceptAddedToScheme(skosmodel, srcConcept, dstConceptScheme);
     240                                                detailsView.getSkosModelHandler().conceptAddedToScheme(skosmodel, srcConcept, dstConceptScheme);
    245241                                        }
    246242                                }
     
    313309                                        {
    314310                                                treeModel.removeConceptFromScheme(srcConcept, dstConceptScheme);
    315                                                 detailsPM.getSkosModelHandler().conceptRemovedFromScheme(skosmodel, srcConcept, dstConceptScheme);
     311                                                detailsView.getSkosModelHandler().conceptRemovedFromScheme(skosmodel, srcConcept, dstConceptScheme);
    316312                                        }
    317313                                        else if (RelationUtils.isTopConceptOfProp(objprop) && !srcConcept.isTopConceptOf(dstConceptScheme))
    318314                                        {
    319315                                                treeModel.setTopConcept(srcConcept, dstConceptScheme, false);
    320                                                 detailsPM.getSkosModelHandler().topConceptForSchemeChanged(skosmodel, srcConcept, dstConceptScheme, false);
     316                                                detailsView.getSkosModelHandler().topConceptForSchemeChanged(skosmodel, srcConcept, dstConceptScheme, false);
    321317                                        }
    322318                                }
     
    338334
    339335        private VocabTreeModel treeModel;
    340         private DetailsPM detailsPM;
     336        private DetailsView detailsView;
    341337       
    342338       
     
    366362        {
    367363                TreeView treePanel = mainWindow.getTreePanel();
    368                 detailsPM = mainWindow.getDetailsController().getPresentationModel(); // HACK!!
     364                detailsView = mainWindow.getDetailsPanel(); // HACK!!
    369365       
    370366                this.treeModel = treePanel.getTreeModel();             
    371367                JTree tree = treePanel.getTreeControl();
    372368       
    373                 this.activeElement.install(tree, this.detailsPM);       
     369                this.activeElement.install(tree, this.detailsView);     
    374370
    375371        }
  • trunk/skotch/src/main/java/nl/uva/amc/skotch/gui/view/details/DetailsView.java

    r736 r740  
    2020import nl.uva.amc.skotch.Settings;
    2121import nl.uva.amc.skotch.SkosVocabularyEditor;
     22import nl.uva.amc.skotch.core.skos.model.SkosConcept;
     23import nl.uva.amc.skotch.core.skos.model.SkosConceptScheme;
     24import nl.uva.amc.skotch.core.skos.model.SkosElement;
     25import nl.uva.amc.skotch.core.skos.model.event.SkosModelListener;
    2226import nl.uva.amc.skotch.core.skos.model.event.utils.SkosModelListenerAdapter;
    2327import nl.uva.amc.skotch.core.skos.model.event.utils.SkosModelListenerDelegate;
     
    2731import nl.uva.amc.skotch.gui.components.HTMLActionPanel;
    2832import nl.uva.amc.skotch.gui.main.Presenter;
    29 import nl.uva.amc.skotch.gui.view.details.archive.LiteralsPanel;
    30 import nl.uva.amc.skotch.gui.view.details.archive.RelationsPanel;
    31 import nl.uva.amc.skotch.gui.view.details.archive.ResourcesPanel;
    32 import nl.uva.amc.skotch.gui.view.details.archive.SchemesPanel;
    33 import nl.uva.amc.skotch.gui.view.details.panels.PlainLiteralPM;
    34 import nl.uva.amc.skotch.gui.view.details.panels.PlainLiteralsPanelView;
     33import nl.uva.amc.skotch.gui.view.details.panels.PlainLiteralItemPM;
     34import nl.uva.amc.skotch.gui.view.details.panels.PlainLiteralsView;
    3535import nl.uva.amc.skotch.tools.Toolbox;
    3636
     37import org.apache.commons.lang3.ArrayUtils;
    3738import org.beanfabrics.IModelProvider;
    3839import org.beanfabrics.Link;
     
    4647
    4748
    48 public class DetailsView extends JPanel implements View<DetailsPM>,
    49                 ModelSubscriber
     49public class DetailsView extends JPanel
    5050{
    5151
     
    6666                        SkosModelListenerAdapter.getNullAdapter());
    6767
    68         private ModelProvider localModelProvider;
    69         private Link link = new Link(this);
    70         private PlainLiteralsPanelView litPnl;
    71 
    7268        /**
    7369         * Create the panel.
     
    7975
    8076
    81         /** {@inheritDoc} */
    82         @Override
    83         public IModelProvider getModelProvider()
    84         {
    85                 return this.link.getModelProvider();
    86         }
    87 
    88 
    89         /** {@inheritDoc} */
    90         @Override
    91         public void setModelProvider(IModelProvider modelProvider)
    92         {
    93                 this.link.setModelProvider(modelProvider);
    94         }
    95 
    96 
    97         /**
    98          * @return the localModelProvider
    99          * @wbp.nonvisual location=48,749
    100          */
    101         protected ModelProvider getLocalModelProvider()
    102         {
    103                 if (this.localModelProvider == null)
    104                 {
    105                         this.localModelProvider = new ModelProvider();
    106                         this.localModelProvider.setPresentationModelType(DetailsPM.class);
    107                 }
    108 
    109                 return this.localModelProvider;
    110         }
    111 
    112 
    113         @Override
    114         public DetailsPM getPresentationModel()
    115         {
    116                 return getLocalModelProvider().getPresentationModel();
    117         }
    118 
    119 
    120         @Override
    121         public void setPresentationModel(DetailsPM pModel)
    122         {
    123                 getLocalModelProvider().setPresentationModel(pModel);
    124 
    125                 this.getLocalModelProvider()
    126                                 .getPresentationModel(new Path("this.elementPath.elementType"))
    127                                 .addPropertyChangeListener(new PropertyChangeListener()
    128                                         {
    129                                                 @Override
    130                                                 public void propertyChange(PropertyChangeEvent evt)
    131                                                 {
    132                                                         if ("skosConceptScheme".equals(evt.getNewValue()))
    133                                                         {
    134                                                                 cardLayout.show(DetailsView.this,
    135                                                                                 DetailsView.SCHEME_DETAILS_PANEL);
    136                                                         }
    137                                                         else if ("skosConcept".equals(evt.getNewValue()))
    138                                                         {
    139                                                                 cardLayout.show(DetailsView.this,
    140                                                                                 DetailsView.CONCEPT_DETAILS_PANEL);
    141                                                         }
    142                                                         else
    143                                                         {
    144                                                                 cardLayout.show(DetailsView.this, DetailsView.START_PAGE);
    145                                                         }
    146                                                 }
    147                                         });
    148         }
    149 
    150         /** {@inheritDoc} */
    151         @Override
    152         public Path getPath()
    153         {
    154                 return this.link.getPath();
    155         }
    156 
    157 
    158         /** {@inheritDoc} */
    159         @Override
    160         public void setPath(Path path)
    161         {
    162                 this.link.setPath(path);
    163         }
     77        // @Override
     78        // public void setPresentationModel(DetailsPM pModel)
     79        // {
     80        // getLocalModelProvider().setPresentationModel(pModel);
     81        //
     82        // this.getLocalModelProvider()
     83        // .getPresentationModel(new Path("this.elementPath.elementType"))
     84        // .addPropertyChangeListener(new PropertyChangeListener()
     85        // {
     86        // @Override
     87        // public void propertyChange(PropertyChangeEvent evt)
     88        // {
     89        // if ("skosConceptScheme".equals(evt.getNewValue()))
     90        // {
     91        // cardLayout.show(DetailsView.this,
     92        // DetailsView.SCHEME_DETAILS_PANEL);
     93        // }
     94        // else if ("skosConcept".equals(evt.getNewValue()))
     95        // {
     96        // cardLayout.show(DetailsView.this,
     97        // DetailsView.CONCEPT_DETAILS_PANEL);
     98        // }
     99        // else
     100        // {
     101        // cardLayout.show(DetailsView.this, DetailsView.START_PAGE);
     102        // }
     103        // }
     104        // });
     105        // }
    164106
    165107
     
    185127        }
    186128
    187 
    188         public void initGui()
    189         {
    190                 conceptPane.setModelProvider(getLocalModelProvider());
    191                 conceptPane.setPath(new Path("this.conceptDetails"));
    192 
    193                 conceptSchemePane.setModelProvider(getLocalModelProvider());
    194                 conceptSchemePane.setPath(new Path("this.conceptSchemeDetails"));
    195 
    196                 // ResourceMap rmap = Application.getInstance().getContext()
    197                 // .getResourceMap(DetailsView.class);
    198                 // rmap.injectComponents(this.conceptPane);
    199                 // rmap.injectComponent(this.conceptSchemePane);
    200 
    201                 this.conceptPane.initGui();
    202                 this.conceptSchemePane.initGui();
    203 
    204 
    205                 Toolbox.injectPMs(DetailsPM.class, litPnl.getPresentationModel(),
    206                                 "prefLabel");
    207         }
    208129
    209130        private HTMLActionPanel createLogoPanel()
     
    288209
    289210                ElementDetailsView detailspnl = new ElementDetailsView();
    290 
    291211                detailspnl.setName(DetailsView.CONCEPT_DETAILS_PANEL);
    292212
    293213                List<JPanel> panels1 = new ArrayList<JPanel>();
    294214
    295 
    296                 litPnl = new PlainLiteralsPanelView();
    297                 litPnl.setModelProvider(detailspnl.getLocalModelProvider());
    298                 litPnl.setPath(new Path("prefLabel"));
    299                 litPnl.setName("prefLabel");
    300                 panels1.add(litPnl);
    301 
    302                 panels1.add(LiteralsPanel.createLiteralsPanel(appmodel,
    303                                 ValueProperty.AltLabel, "altLabel"));
    304                 panels1.add(LiteralsPanel.createLiteralsPanel(appmodel,
    305                                 ValueProperty.HiddenLabel, "hiddenLabel"));
     215                // panels1.add(PlainLiteralsView.createPlainLiteralsView(elemModelProvider,
     216                // ValueProperty.PrefLabel));
     217                panels1.add(LiteralsPanel.createLiteralsPanel(ValueProperty.AltLabel,
     218                                "prefLabel"));
     219                panels1.add(LiteralsPanel.createLiteralsPanel(ValueProperty.AltLabel,
     220                                "altLabel"));
     221                panels1.add(LiteralsPanel.createLiteralsPanel(ValueProperty.HiddenLabel,
     222                                "hiddenLabel"));
    306223
    307224                detailspnl.addGroup(panels1, "Lexical Labels", true);
    308225
    309226                List<JPanel> panels2 = new ArrayList<JPanel>();
    310                 panels2.add(LiteralsPanel.createLiteralsPanel(appmodel, ValueProperty.Note,
    311                                 "note"));
    312                 panels2.add(LiteralsPanel.createLiteralsPanel(appmodel,
    313                                 ValueProperty.ScopeNote, "scopeNote"));
    314                 panels2.add(LiteralsPanel.createLiteralsPanel(appmodel,
    315                                 ValueProperty.Definition, "definition"));
    316                 panels2.add(LiteralsPanel.createLiteralsPanel(appmodel,
    317                                 ValueProperty.Example, "example"));
    318                 panels2.add(LiteralsPanel.createLiteralsPanel(appmodel,
    319                                 ValueProperty.HistoryNote, "historyNote"));
    320                 panels2.add(LiteralsPanel.createLiteralsPanel(appmodel,
    321                                 ValueProperty.EditorialNote, "editorialNote"));
    322                 panels2.add(LiteralsPanel.createLiteralsPanel(appmodel,
    323                                 ValueProperty.ChangeNote, "changeNote"));
    324                 panels2.add(LiteralsPanel.createLiteralsPanel(appmodel,
    325                                 ValueProperty.RdfsComment, "rdfsComment"));
     227                panels2.add(LiteralsPanel.createLiteralsPanel(ValueProperty.Note, "note"));
     228                panels2.add(LiteralsPanel.createLiteralsPanel(ValueProperty.ScopeNote,
     229                                "scopeNote"));
     230                panels2.add(LiteralsPanel.createLiteralsPanel(ValueProperty.Definition,
     231                                "definition"));
     232                panels2.add(LiteralsPanel.createLiteralsPanel(ValueProperty.Example,
     233                                "example"));
     234                panels2.add(LiteralsPanel.createLiteralsPanel(ValueProperty.HistoryNote,
     235                                "historyNote"));
     236                panels2.add(LiteralsPanel.createLiteralsPanel(ValueProperty.EditorialNote,
     237                                "editorialNote"));
     238                panels2.add(LiteralsPanel.createLiteralsPanel(ValueProperty.ChangeNote,
     239                                "changeNote"));
     240                panels2.add(LiteralsPanel.createLiteralsPanel(ValueProperty.RdfsComment,
     241                                "rdfsComment"));
    326242
    327243                detailspnl.addGroup(panels2, "Documentation Properties", true);
    328244
    329245                List<JPanel> panels5 = new ArrayList<JPanel>();
    330                 panels5.add(RelationsPanel.createRelationsPanel(
     246                panels5.add(RelationsPanel.createRelationsPanel(appmodel,
    331247                                SkosRelationPropertyImpl.Broader, "broader"));
    332                 panels5.add(RelationsPanel.createRelationsPanel(
     248                panels5.add(RelationsPanel.createRelationsPanel(appmodel,
    333249                                SkosRelationPropertyImpl.Narrower, "narrower"));
    334                 panels5.add(RelationsPanel.createRelationsPanel(
     250                panels5.add(RelationsPanel.createRelationsPanel(appmodel,
    335251                                SkosRelationPropertyImpl.Related, "related"));
    336252
     
    340256
    341257                List<JPanel> panels3 = new ArrayList<JPanel>();
    342                 panels3.add(RelationsPanel.createRelationsPanel(
     258                panels3.add(RelationsPanel.createRelationsPanel(appmodel,
    343259                                SkosRelationPropertyImpl.ExactMatch, "exactMatch"));
    344                 panels3.add(RelationsPanel.createRelationsPanel(
     260                panels3.add(RelationsPanel.createRelationsPanel(appmodel,
    345261                                SkosRelationPropertyImpl.CloseMatch, "closeMatch"));
    346                 panels3.add(RelationsPanel.createRelationsPanel(
     262                panels3.add(RelationsPanel.createRelationsPanel(appmodel,
    347263                                SkosRelationPropertyImpl.BroadMatch, "broadMatch"));
    348                 panels3.add(RelationsPanel.createRelationsPanel(
     264                panels3.add(RelationsPanel.createRelationsPanel(appmodel,
    349265                                SkosRelationPropertyImpl.NarrowMatch, "narrowMatch"));
    350                 panels3.add(RelationsPanel.createRelationsPanel(
     266                panels3.add(RelationsPanel.createRelationsPanel(appmodel,
    351267                                SkosRelationPropertyImpl.RelatedMatch, "relatedMatch"));
    352268
     
    365281                List<JPanel> panels6 = new ArrayList<JPanel>();
    366282
    367                 panels6.add(SchemesPanel.createSchemesPanel(
     283                panels6.add(SchemesPanel.createSchemesPanel(appmodel,
    368284                                SkosRelationPropertyImpl.InScheme, "inScheme"));
    369285
     
    374290                return detailspnl;
    375291        }
     292
    376293
    377294        ElementDetailsView createSchemeDetailsPanel()
     
    387304                return panel;
    388305        }
     306
     307        public SkosModelListener getSkosModelHandler()
     308        {
     309                return this.listenerDelegate;
     310        }
     311
     312        public void initGui()
     313        {
     314
     315        }
     316
     317        public void setSelectedElementPath(SkosElement[] path)
     318        {
     319                if (!ArrayUtils.isEmpty(path))
     320                {
     321                        SkosElement lastElement = path[path.length - 1];
     322
     323                        if (lastElement instanceof SkosConcept)
     324                        {
     325                                conceptPane.setSelectedElementPath(path);
     326                                cardLayout.show(this, CONCEPT_DETAILS_PANEL);
     327                        }
     328                        else if (lastElement instanceof SkosConceptScheme)
     329                        {
     330                                conceptSchemePane.setSelectedElementPath(path);
     331                                cardLayout.show(this, SCHEME_DETAILS_PANEL);
     332                        }
     333                        else
     334                        {
     335                                cardLayout.show(this, START_PAGE);
     336                        }
     337                }
     338                else
     339                {
     340                        cardLayout.show(this, START_PAGE);
     341                }
     342        }
    389343}
  • trunk/skotch/src/main/java/nl/uva/amc/skotch/gui/view/details/ElementDetailsView.java

    r736 r740  
    1818import javax.swing.ScrollPaneConstants;
    1919
     20import nl.eelkevanderhorst.sve.gui.domain.SkosService;
     21import nl.eelkevanderhorst.sve.gui.domain.impl.SkosServiceImpl;
     22import nl.uva.amc.skotch.core.skos.model.SkosElement;
     23import nl.uva.amc.skotch.core.skos.model.SkosModel;
     24import nl.uva.amc.skotch.core.skos.model.impl.SkosModelImpl;
    2025import nl.uva.amc.skotch.gui.GuiUtils;
    2126import nl.uva.amc.skotch.gui.components.CollapsiblePanel;
    22 import nl.uva.amc.skotch.gui.view.details.archive.TriplesPanelView;
    2327import nl.uva.amc.skotch.tools.Toolbox;
    2428
    2529import org.apache.commons.collections15.MultiMap;
    2630import org.apache.commons.collections15.multimap.MultiHashMap;
     31import org.apache.commons.lang3.ArrayUtils;
    2732import org.beanfabrics.IModelProvider;
    2833import org.beanfabrics.Link;
     
    3540
    3641
    37 public class ElementDetailsView extends JScrollPane implements
    38                 View<ElementDetailsPM>, ModelSubscriber
     42public class ElementDetailsView extends JScrollPane
    3943{ // Inherit from ScrollPane because it can't be used with CardLayout in
    4044        // MainWindow
     
    4246        private static final long serialVersionUID = 6605538772596119618L;
    4347
    44         private Link link = new Link(this);
    45         private ModelProvider localModelProvider;
    46 
    4748        TopPanelView topPanelView = new TopPanelView();
     49        TopPanelPM topPanelPM = new TopPanelPM();
    4850
    4951        private JPanel mainPanel = new JPanel();
     
    6062
    6163                // handler.install();
    62         }
    63 
     64
     65                this.bindComponents();
     66        }
    6467
    6568        private void initComponents()
     
    9497
    9598                // ToolTipManager.sharedInstance().setInitialDelay(0);
    96 
    97                 topPanelView.setModelProvider(getLocalModelProvider());
    98                 topPanelView.setPath(new Path("this.infoHeader"));
    99         }
    100 
    101 
    102         public void initGui()
    103         {
    104                 // topPanelView.initGui();
    105 
    106                 for (TriplesPanelView pnl : this.groups.values())
    107                 {
    108                         pnl.initGui();
    109                 }
     99        }
     100
     101
     102        private void bindComponents()
     103        {
     104                this.topPanelView.setPresentationModel(this.topPanelPM);
     105
     106                this.topPanelPM.getContext().addService(SkosService.class,
     107                                SkosServiceImpl.instance());
    110108        }
    111109
     
    125123        }
    126124
    127 
    128         @Override
    129         public ElementDetailsPM getPresentationModel()
    130         {
    131                 return getLocalModelProvider().getPresentationModel();
    132         }
    133 
    134 
    135         @Override
    136         public void setPresentationModel(ElementDetailsPM pModel)
    137         {
    138                 getLocalModelProvider().setPresentationModel(pModel);
    139         }
    140 
    141 
    142         @Override
    143         public void setModelProvider(IModelProvider provider)
    144         {
    145                 this.link.setModelProvider(provider);
    146         }
    147 
    148         @Override
    149         public IModelProvider getModelProvider()
    150         {
    151                 return this.link.getModelProvider();
    152         }
    153 
    154 
    155         @Override
    156         public Path getPath()
    157         {
    158                 return this.link.getPath();
    159         }
    160 
    161 
    162         @Override
    163         public void setPath(Path path)
    164         {
    165                 this.link.setPath(path);
    166         }
    167 
    168 
    169         /**
    170          * @wbp.nonvisual location=68,419
    171          * @return the localModelProvider
    172          */
    173         protected ModelProvider getLocalModelProvider()
    174         {
    175                 if (this.localModelProvider == null)
    176                 {
    177                         this.localModelProvider = new ModelProvider();
    178                         this.localModelProvider.setPresentationModelType(ElementDetailsPM.class);
    179                 }
    180 
    181                 return this.localModelProvider;
    182         }
    183 
    184         /**
    185          * @param localModelProvider
    186          *          the localModelProvider to set
    187          */
    188         protected void setLocalModelProvider(ModelProvider modelProvider)
    189         {
    190                 this.localModelProvider = modelProvider;
    191         }
    192125
    193126        public void addGroup(List<JPanel> panels, String title, boolean addLeft)
     
    299232        private Logger logger = LoggerFactory.getLogger(this.getClass());
    300233
     234        public void setSelectedElementPath(SkosElement[] path)
     235        {
     236                if (!ArrayUtils.isEmpty(path))
     237                {
     238                        SkosElement elem = path[path.length - 1];
     239                        this.topPanelPM.setSkosElement(elem);
     240                }
     241
     242                for (CollapsiblePanel pnl : getPanels())
     243                {
     244                        if (pnl instanceof TriplesPanelView)
     245                        {
     246                                TriplesPanelView triplesPanel = (TriplesPanelView) pnl;
     247
     248                                triplesPanel.setElementPath(path);
     249                        }
     250                }
     251
     252        }
     253
    301254}
  • trunk/skotch/src/main/java/nl/uva/amc/skotch/gui/view/details/LiteralsPanel.java

    r736 r740  
    1 package nl.uva.amc.skotch.gui.view.details.archive;
     1package nl.uva.amc.skotch.gui.view.details;
    22
    33import java.awt.BorderLayout;
     
    2020import javax.swing.event.ListSelectionListener;
    2121
     22import nl.eelkevanderhorst.sve.gui.domain.impl.SkosServiceImpl;
    2223import nl.uva.amc.skotch.SkosVocabularyEditor;
    2324import nl.uva.amc.skotch.core.skos.model.RdfProperty;
     
    3334import nl.uva.amc.skotch.gui.view.details.controls.PlainLiteralsTable.LiteralsModel;
    3435
     36import org.apache.commons.lang3.ArrayUtils;
    3537import org.apache.commons.lang3.ObjectUtils;
    3638import org.jdesktop.application.Action;
     
    4143import org.openrdf.model.impl.LiteralImpl;
    4244
     45import com.google.common.collect.HashMultimap;
     46import com.google.common.collect.Multimap;
     47
    4348
    4449public class LiteralsPanel extends TriplesPanelView
     
    98103
    99104       
    100         public static TriplesPanelView createLiteralsPanel(Presenter appmodel, RdfProperty predicate, String name)
     105        public static TriplesPanelView createLiteralsPanel(RdfProperty predicate, String name)
    101106        {
    102107                LiteralsPanel pnl = new LiteralsPanel();
    103                 pnl.setAppModel(appmodel);
    104                 pnl.setPredicate(predicate);
     108                pnl.predicate = (ValueProperty) predicate;
    105109                pnl.setName(name);
    106110               
     
    108112        }
    109113
    110 
    111 
    112         private void setAppModel(Presenter appmodel)
    113         {
    114                
    115         }
    116 
    117 
     114        private ValueProperty predicate;
    118115
    119116        private static final long serialVersionUID = 911400717351368266L;
     
    151148
    152149                this.plainLiteralsTable.setGridColor(Color.LIGHT_GRAY);
    153                 this.setContent(this.plainLiteralsTable);
     150               
     151                this.setContent(buildTable());
    154152        }
    155153       
     
    181179                               
    182180                                if ((current != null) && ObjectUtils.equals(elem, current) && (value instanceof Literal))
    183                                 {
    184                                         ValueProperty pred = getPredicate();
    185                                        
    186                                         if (type.isSubPropertyOf(pred))
     181                                {                                       
     182                                        if (type.isSubPropertyOf(predicate))
    187183                                        {
    188184                                                LiteralsModel tableModel = plainLiteralsTable.getModel();
     
    205201                                if ((current != null) && ObjectUtils.equals(elem, current) && (value instanceof Literal))
    206202                                {
    207                                         ValueProperty pred = getPredicate();
    208                                        
    209                                         if (type.isSubPropertyOf(pred))
     203                                        if (type.isSubPropertyOf(predicate))
    210204                                        {
    211205                                                LiteralsModel tableModel = plainLiteralsTable.getModel();
     
    281275
    282276        @Override
    283         public ValueProperty getPredicate()
    284         {
    285                 return (ValueProperty) super.getPredicate();
    286         }
    287 
    288 
    289         @Override
    290277        public int getItemCount()
    291278        {
     
    305292
    306293        @Override
    307         public void update(SkosElement elem)
    308         {
    309                 super.update(elem);
    310 
    311                 Set<Literal> literals = new HashSet<Literal>();
    312                 SkosElement element = this.getElement();
    313 
    314                 if (element != null)
    315                 {
    316                         Set<Value> vals = element.getValues(this.getPredicate());
    317 
    318                         for (Value val : vals)
    319                         {
    320                                 if (val instanceof Literal)
    321                                 {
    322                                         Literal lit = (Literal) val;
    323 
    324                                         literals.add(lit);
    325                                 }
    326                         }
    327                 }
    328                        
    329                 LiteralsModel tableModel = this.plainLiteralsTable.getModel();
    330                 tableModel.setValues(literals);
    331 
    332                 this.setExpanded(this.getItemCount() == 0);
    333         }
    334 
    335 
    336         @Override
    337294        @Action
    338295        public void addValue(ActionEvent ev)
    339296        {
    340297                SkosElement elem = this.getElement();
    341                 ValueProperty pred = this.getPredicate();
     298                ValueProperty pred = this.predicate;
    342299                SkosVocabularyEditor sve = Application.getInstance(SkosVocabularyEditor.class);
    343300
     
    365322        {
    366323                SkosElement elem = this.getElement();
    367                 ValueProperty pred = this.getPredicate();
     324                ValueProperty pred = this.predicate;
    368325                Set<Value> literals = this.getSelectedValues();
    369326
     
    372329
    373330
     331        @Override
     332        public void setElementPath(SkosElement[] path)
     333        {
     334                Multimap<String, String> labels = HashMultimap.create();
     335               
     336                if (!ArrayUtils.isEmpty(path))
     337                {
     338                        SkosElement element = path[path.length - 1];
     339       
     340                        if (element != null)
     341                        {
     342                                labels = SkosServiceImpl.instance().getLabels(element, this.predicate);
     343                        }
     344                }
     345               
     346                LiteralsModel tableModel = this.plainLiteralsTable.getModel();
     347                tableModel.setValues(labels);
     348       
     349                this.setExpanded(this.getItemCount() > 0);
     350        }
     351
     352
    374353}
  • trunk/skotch/src/main/java/nl/uva/amc/skotch/gui/view/details/RelationsPanel.java

    r736 r740  
    1 package nl.uva.amc.skotch.gui.view.details.archive;
     1package nl.uva.amc.skotch.gui.view.details;
    22
    33import java.awt.Color;
     
    4343import org.apache.commons.collections15.MultiMap;
    4444import org.apache.commons.collections15.bidimap.DualHashBidiMap;
     45import org.apache.commons.lang3.ArrayUtils;
    4546import org.jdesktop.application.Action;
    4647import org.jdesktop.application.Application;
     
    363364
    364365
    365         public static RelationsPanel createRelationsPanel(ObjectProperty predicate, String name)
     366        private ObjectProperty predicate;
     367
     368
     369        public static RelationsPanel createRelationsPanel(Presenter appmodel, ObjectProperty predicate, String name)
    366370        {
    367371                RelationsPanel pnl = new RelationsPanel();
    368                 pnl.setPredicate(predicate);
     372                pnl.predicate = predicate;
    369373                pnl.setName(name);
     374                pnl.appmodel = appmodel;
    370375
    371376                return pnl;
    372         }
    373 
    374 
    375         public ActiveElement getSelectionModel()
    376         {
    377                 return null;
    378377        }
    379378
     
    412411
    413412
    414         @Override
    415         public ObjectProperty getPredicate()
    416         {
    417                 return (ObjectProperty)super.getPredicate();
    418         }
     413       
    419414       
    420415       
     
    433428
    434429
    435         @Override
    436         public void update(SkosElement src)
    437         {
    438                 super.update(src);
    439 
    440                 Set<RelatedElement> elems = getRelatedElems();
    441                
    442                 this.modelAdapter.setItems(elems);
    443 
    444                 int nrows = this.modelAdapter.getSize();
    445                 this.elementList.setVisibleRowCount(nrows);
    446                 Dimension size = this.elementList.getPreferredScrollableViewportSize();
    447                 this.elementList.setPreferredSize(size);
    448 
    449                 this.setExpanded(this.getItemCount() == 0);
    450         }
    451        
    452        
    453        
    454         private Set<RelatedElement> getRelatedElems()
     430        private Set<RelatedElement> getRelatedElems(SkosElement elem)
    455431        {
    456432                BidiMap<SkosElement, RelatedElement> others = new DualHashBidiMap<SkosElement, RelatedElement>();
    457                
    458                 SkosElement elem = this.getElement();
    459                 ObjectProperty pred = this.getPredicate();
     433
     434                ObjectProperty pred = this.predicate;
    460435               
    461436                if ((elem == null) || (pred == null))
     
    542517        {
    543518                SkosElement elem = this.getElement();
    544                 ObjectProperty pred = this.getPredicate();
     519                ObjectProperty pred = this.predicate;
    545520                SkosConceptScheme scheme = getSelectionModel().getActiveCScheme();
    546521
     
    623598
    624599               
    625                 appmodel.removeRelations(element, Collections.singleton(this.getPredicate()), others);
     600                appmodel.removeRelations(element, Collections.singleton(this.predicate), others);
    626601
    627602                for (SkosElement elem1 : others) // ???
    628603                {
    629                         appmodel.removeRelations(elem1,  Collections.singleton(this.getPredicate()), Collections
     604                        appmodel.removeRelations(elem1,  Collections.singleton(this.predicate), Collections
    630605                                .singleton(element));
    631606                }
    632607        }
     608       
     609       
     610        public ActiveElement getSelectionModel()
     611        {
     612                return this.appmodel.getSelectedElement();
     613        }
     614
     615
     616        @Override
     617        public void setElementPath(SkosElement[] path)
     618        {
     619                Set<RelatedElement> elems = Collections.emptySet();
     620       
     621                if (!ArrayUtils.isEmpty(path))
     622                {
     623                        SkosElement lastElement = path[path.length - 1];
     624       
     625                        elems = getRelatedElems(lastElement);
     626                }
     627               
     628                this.modelAdapter.setItems(elems);
     629       
     630                int nrows = this.modelAdapter.getSize();
     631                this.elementList.setVisibleRowCount(nrows);
     632                Dimension size = this.elementList.getPreferredScrollableViewportSize();
     633                this.elementList.setPreferredSize(size);
     634       
     635                this.setExpanded(this.getItemCount() > 0);
     636        }
    633637
    634638}
  • trunk/skotch/src/main/java/nl/uva/amc/skotch/gui/view/details/ResourcesPanel.java

    r736 r740  
    1 package nl.uva.amc.skotch.gui.view.details.archive;
     1package nl.uva.amc.skotch.gui.view.details;
    22
    33import java.awt.Color;
     
    3838{
    3939        public Object elementList;
     40        private ValueProperty predicate;
    4041
    4142
     
    200201                                Value val = (Value)value;
    201202
    202                                 if (elem.hasValue((ValueProperty)ResourcesPanel.this.getPredicate(), val))
     203                                if (elem.hasValue(ResourcesPanel.this.predicate, val))
    203204                                {
    204205                                        comp.setForeground(Color.BLUE);
     
    237238
    238239                SkosElement elem = this.getElement();
    239                 ValueProperty pred = (ValueProperty)this.getPredicate();
     240                ValueProperty pred = this.predicate;
    240241                SkosVocabularyEditor sve = Application.getInstance(SkosVocabularyEditor.class);
    241242
     
    262263        {
    263264                ResourcesPanel pnl = new ResourcesPanel();
    264                 pnl.setPredicate(predicate);
     265                pnl.predicate = predicate;
    265266                pnl.setName(name);
    266267
  • trunk/skotch/src/main/java/nl/uva/amc/skotch/gui/view/details/SchemesPanel.java

    r736 r740  
    1 package nl.uva.amc.skotch.gui.view.details.archive;
     1package nl.uva.amc.skotch.gui.view.details;
    22
    33
     
    2222import javax.swing.table.TableColumn;
    2323
     24import nl.eelkevanderhorst.sve.gui.domain.ConceptScheme;
     25import nl.eelkevanderhorst.sve.gui.domain.impl.SkosServiceImpl;
    2426import nl.uva.amc.skotch.SkosVocabularyEditor;
    2527import nl.uva.amc.skotch.core.skos.model.ObjectProperty;
     
    4749        {
    4850                private boolean topConcept;
    49                 private SkosConceptScheme scheme;
     51                private String label;
     52                private ConceptScheme scheme;
    5053
    5154
     
    6063                 * @param scheme
    6164                 */
    62                 public SchemeItem(boolean topConcept, SkosConceptScheme scheme)
     65                public SchemeItem(boolean topConcept, String label, ConceptScheme scheme)
    6366                {
    6467                        this.topConcept = topConcept;
     68                        this.label = label;
    6569                        this.scheme = scheme;
    6670                }
     
    7983                 * @return the scheme
    8084                 */
    81                 public SkosConceptScheme getScheme()
     85                public ConceptScheme getScheme()
    8286                {
    8387                        return this.scheme;
     
    134138                                + "]";
    135139                }
     140
     141
     142                public String getLabel()
     143                {
     144                        return this.label;
     145                }
    136146        }
    137147
     
    193203                                return Boolean.valueOf(schemeItems.get(rowIndex).isTopConcept());
    194204                        case 1:
    195                                 return schemeItems.get(rowIndex).getScheme();
     205                                return schemeItems.get(rowIndex).getLabel();
    196206                        default:
    197207                                return null;
     
    226236                                if (oldValue != newValue)
    227237                                {
    228                                         SchemeItem newItem = new SchemeItem(newValue, item.getScheme());
     238                                        SchemeItem newItem = new SchemeItem(newValue, item.getLabel(), item.getScheme());
    229239                                        this.schemeItems.set(rowIndex, newItem);
    230240
     
    261271
    262272
    263                 public Set<SkosConceptScheme> getSchemes()
    264                 {
    265                         Set<SkosConceptScheme> schemes = new HashSet<SkosConceptScheme>();
     273                public Set<ConceptScheme> getSchemes()
     274                {
     275                        Set<ConceptScheme> schemes = new HashSet<ConceptScheme>();
    266276
    267277                        for (SchemeItem item : this.schemeItems)
     
    274284
    275285
    276                 public boolean addSchemeItem(SkosConceptScheme scheme, boolean topConcept)
    277                 {
    278                         SchemeItem item = new SchemeItem(topConcept, scheme);
     286                public boolean addSchemeItem(SkosConceptScheme scheme, String label, boolean topConcept)
     287                {
     288                        SchemeItem item = new SchemeItem(topConcept, label, scheme);
    279289
    280290                        if (!this.schemeItems.contains(item))
     
    309319
    310320
    311                 public SkosConceptScheme getScheme(int index)
     321                public ConceptScheme getScheme(int index)
    312322                {
    313323                        SchemeItem item = this.schemeItems.get(index);
     
    369379
    370380
    371         public static SchemesPanel createSchemesPanel(ObjectProperty hastopconcept,
     381        public static SchemesPanel createSchemesPanel(Presenter appmodel, ObjectProperty hastopconcept,
    372382                String string)
    373383        {
    374384                SchemesPanel pnl = new SchemesPanel();
    375                 pnl.setPredicate(hastopconcept);
    376385                pnl.setName(string);
     386                pnl.appmodel = appmodel;
    377387
    378388                return pnl;
     
    380390
    381391
    382         private void setAppModel(Presenter appmodel)
    383         {}
    384 
    385 
     392        private Presenter appmodel;
    386393        private JTable table;
    387394        private SchemesTableModel dataModel = new SchemesTableModel();
    388395        private ElementToLabelConverter converter = new ElementToLabelConverter(Arrays
    389396                .asList("", "en"), false);
     397       
    390398
    391399
     
    476484
    477485        /**
    478          * @see nl.uva.amc.skotch.gui.view.details.archive.TriplesPanelView#update(nl.uva.amc.skotch.core.skos.model.SkosElement)
    479          */
    480         @Override
    481         public void update(SkosElement elem)
    482         {
    483                 super.update(elem);
    484 
    485                 if (elem instanceof SkosConcept)
    486                 {
    487                         SkosConcept concept = (SkosConcept)elem;
    488                         Set<SkosConceptScheme> schemes = concept.getConceptSchemes();
    489 // SkosConceptScheme activeScheme = getActiveCScheme();
    490                         List<SchemeItem> items = new ArrayList<SchemeItem>();
    491 
    492 // if (activeScheme != null)
    493 // {
    494 //
    495 // }
    496                         for (SkosConceptScheme scheme : schemes)
    497                         {
    498                                 boolean top = concept.isTopConceptOf(scheme);
    499                                 SchemeItem item = new SchemeItem(top, scheme);
    500 
    501                                 items.add(item);
    502                         }
    503 
    504                         this.dataModel.setSchemeItems(items);
    505                 }
    506                 else
    507                 {
    508                         this.dataModel.clear();
    509                 }
    510 
    511                 this.setExpanded(this.getItemCount() == 0);
    512         }
    513 
    514 
    515         /**
    516          * @see nl.uva.amc.skotch.gui.view.details.archive.TriplesPanelView#isValueSelected()
     486         * @see nl.uva.amc.skotch.gui.view.details.TriplesPanelView#isValueSelected()
    517487         */
    518488        @Override
     
    524494
    525495        /**
    526          * @see nl.uva.amc.skotch.gui.view.details.archive.TriplesPanelView#getItemCount()
     496         * @see nl.uva.amc.skotch.gui.view.details.TriplesPanelView#getItemCount()
    527497         */
    528498        @Override
     
    559529
    560530
    561         public Set<SkosConceptScheme> getSelectedSchemes()
    562         {
    563                 Set<SkosConceptScheme> result = new HashSet<SkosConceptScheme>();
     531        public Set<ConceptScheme> getSelectedSchemes()
     532        {
     533                Set<ConceptScheme> result = new HashSet<ConceptScheme>();
    564534
    565535                int[] selectedIndices = table.getSelectedRows();
     
    569539                        for (int selectedIndex : selectedIndices)
    570540                        {
    571                                 SkosConceptScheme scheme = this.dataModel.getScheme(selectedIndex);
     541                                ConceptScheme scheme = this.dataModel.getScheme(selectedIndex);
    572542                                result.add(scheme);
    573543                        }
     
    582552        public void addValue(ActionEvent eve)
    583553        {
    584                 Presenter appmodel = this.getAppModel();
    585 
    586554                SkosElement elem = this.getElement();
    587555// SkosConceptScheme scheme = appmodel.getSelectionModel().getActiveCScheme();
     
    602570                Set<SkosElement> elements = dlg.getSelectedElements();
    603571
    604                 appmodel.addRelations(elem, Collections
     572                this.appmodel.addRelations(elem, Collections
    605573                        .singleton(SkosRelationPropertyImpl.InScheme.inverse()), elements);
    606574        }
     
    611579        public void deleteValue(ActionEvent eve)
    612580        {
    613                 Presenter appmodel = this.getAppModel();
    614 
    615                 Set<SkosConceptScheme> schemes = getSelectedSchemes();
    616 
    617                 appmodel.removeRelations(this.getElement(), Collections
    618                         .singleton(SkosRelationPropertyImpl.InScheme.inverse()), schemes);
    619         }
    620 
    621 
    622         private Presenter getAppModel()
    623         {
    624                 return null;
     581                Presenter appmodel = this.appmodel;
     582
     583                Set<ConceptScheme> schemes = getSelectedSchemes();
     584
     585//              appmodel.removeRelations(this.getElement(), Collections
     586//                      .singleton(SkosRelationPropertyImpl.InScheme.inverse()), schemes);
     587        }
     588       
     589
     590        /**
     591         * @see nl.uva.amc.skotch.gui.view.details.TriplesPanelView#setElementPath(nl.uva.amc.skotch.core.skos.model.SkosElement)
     592         */
     593        @Override
     594        public void setElementPath(SkosElement[] path)
     595        {
     596                List<SchemeItem> items = new ArrayList<SchemeItem>();
     597               
     598                if (!ArrayUtils.isEmpty(path))
     599                {
     600                        SkosElement elem = path[path.length - 1];
     601       
     602                        if (elem instanceof SkosConcept)
     603                        {
     604                                SkosConcept concept = (SkosConcept)elem;
     605                               
     606                                Set<ConceptScheme> schemes = SkosServiceImpl.instance().getConceptSchemes(concept);
     607                               
     608                                for (ConceptScheme scheme : schemes)
     609                                {
     610                                        boolean top = SkosServiceImpl.instance().isTopConceptOf(concept, scheme);
     611                                        String label = SkosServiceImpl.instance().getLabel(scheme);
     612                                       
     613                                        SchemeItem item = new SchemeItem(top, label, scheme);
     614       
     615                                        items.add(item);
     616                                }
     617                        }
     618       
     619                        this.dataModel.setSchemeItems(items);
     620                }
     621                else
     622                {
     623                        this.dataModel.clear();
     624                }
     625       
     626                this.setExpanded(this.getItemCount() > 0);
    625627        }
    626628
  • trunk/skotch/src/main/java/nl/uva/amc/skotch/gui/view/details/TriplesPanelPM.java

    r736 r740  
    1 package nl.uva.amc.skotch.gui.view.details.archive;
     1package nl.uva.amc.skotch.gui.view.details;
    22
    33import nl.uva.amc.skotch.core.skos.model.event.SkosModelListener;
     
    99public class TriplesPanelPM extends AbstractPM
    1010{
    11         private SkosModelListener skosModelHandler = SkosModelListenerAdapter.getNullAdapter();
    12 
    13         /**
    14          * @return the skosModelHandler
    15          */
    16         public SkosModelListener getSkosModelHandler()
    17         {
    18                 return skosModelHandler;
    19         }
    20 
    21         /**
    22          * @param skosModelHandler the skosModelHandler to set
    23          */
    24         public void setSkosModelHandler(SkosModelListener skosModelHandler)
    25         {
    26                 this.skosModelHandler = skosModelHandler;
    27         }
     11//      private SkosModelListener skosModelHandler = SkosModelListenerAdapter.getNullAdapter();
     12//
     13//      /**
     14//       * @return the skosModelHandler
     15//       */
     16//      public SkosModelListener getSkosModelHandler()
     17//      {
     18//              return skosModelHandler;
     19//      }
     20//
     21//      /**
     22//       * @param skosModelHandler the skosModelHandler to set
     23//       */
     24//      public void setSkosModelHandler(SkosModelListener skosModelHandler)
     25//      {
     26//              this.skosModelHandler = skosModelHandler;
     27//      }
    2828       
    2929}
  • trunk/skotch/src/main/java/nl/uva/amc/skotch/gui/view/details/TriplesPanelView.java

    r736 r740  
    1 package nl.uva.amc.skotch.gui.view.details.archive;
     1package nl.uva.amc.skotch.gui.view.details;
    22
    33import static javax.swing.BorderFactory.createMatteBorder;
     
    6767
    6868                // [+] name:Name "Add" "Delete" "Filter"
    69         }
    70 
    71 
    72         /**
    73          * @return the predicate
    74          */
    75         public RdfProperty getPredicate()
    76         {
    77                 return null; //this.getTriplesPanelMediator().getPredicate();
    78         }
    79 
    80 
    81 
    82         public void setPredicate(RdfProperty predicate)
    83         {
    84                 //this.getTriplesPanelMediator().setPredicate(predicate);
    8569        }
    8670
     
    139123
    140124
    141         protected void update(SkosElement elem)
     125        public void setElementPath(SkosElement[] path)
    142126        {
    143127                // Will be overridden by subclasses.
  • trunk/skotch/src/main/java/nl/uva/amc/skotch/gui/view/details/controls/PlainLiteralsTable.java

    r711 r740  
    1111import java.util.List;
    1212import java.util.Locale;
     13import java.util.Map;
    1314import java.util.Set;
    1415
     
    3334import org.slf4j.LoggerFactory;
    3435
     36import com.google.common.collect.Multimap;
     37
    3538
    3639public class PlainLiteralsTable extends JTable
     
    251254                }
    252255
    253 
    254256                public boolean setValues(Set<Literal> set)
    255257                {
     
    283285
    284286                private static Logger logger = LoggerFactory.getLogger(LiteralsModel.class);
     287
     288
     289                public void setValues(Multimap<String, String> labels)
     290                {
     291                        Set<Literal> literals = new HashSet<Literal>();
     292                       
     293                        for (Map.Entry<String, String> entry : labels.entries())
     294                        {
     295                                Literal lit = new LiteralImpl(entry.getValue(), entry.getKey());
     296
     297                                literals.add(lit);
     298                        }
     299                       
     300                        this.setValues(literals);
     301                }
    285302        }
    286303
  • trunk/skotch/src/main/java/nl/uva/amc/skotch/gui/view/details/panels/PanelTestWindow.java

    r736 r740  
    2727import org.apache.commons.lang3.ClassUtils;
    2828import org.apache.commons.lang3.ObjectUtils;
     29import org.beanfabrics.IModelProvider;
     30import org.beanfabrics.Link;
    2931import org.beanfabrics.ModelProvider;
     32import org.beanfabrics.ModelSubscriber;
    3033import org.beanfabrics.Path;
    3134import org.beanfabrics.View;
     
    3538
    3639
    37 public class PanelTestWindow extends JFrame implements
    38                 View<PlainLiteralsPanelPM>, ActionListener, ItemListener,
    39                 PropertyChangeListener
     40public class PanelTestWindow extends JFrame implements View<PlainLiteralsPM>,
     41                ActionListener, ItemListener, PropertyChangeListener, ModelSubscriber
    4042{
    4143        private JPanel panel;
     
    5153        private JButton btnTest;
    5254
    53         private PlainLiteralsPanelPM triplesPM;
     55        private PlainLiteralsPM triplesPM;
    5456        private CollapsiblePanel collapsiblePanel;
    55         private PlainLiteralsPanelView plainLiteralsPanelView;
     57        private PlainLiteralsView plainLiteralsView;
    5658        private SpringLayout panel_1SpringLayout;
    57         private PlainLiteralsPanelView triplesPanelView_1;
     59        private PlainLiteralsView triplesPanelView_1;
     60
     61        private Link link = new Link(this);
    5862
    5963
     
    7175                                        {
    7276
    73                                                 // final PlainLiteralsPanelPM pm = new PlainLiteralsPanelPM();
     77                                                // final PlainLiteralsPM pm = new PlainLiteralsPM();
    7478
    7579                                                final PanelTestWindow window = new PanelTestWindow();
     
    9498                initialize();
    9599
    96                 this.triplesPM = new PlainLiteralsPanelPM();
     100                this.triplesPM = new PlainLiteralsPM();
    97101                this.setPresentationModel(triplesPM);
    98102
     
    218222         * @wbp.nonvisual location=28,509
    219223         */
    220         private ModelProvider getLocalModelProvider()
     224        public ModelProvider getLocalModelProvider()
    221225        {
    222226                if (localModelProvider == null)
    223227                {
    224228                        localModelProvider = new ModelProvider();
    225                         localModelProvider.setPresentationModelType(PlainLiteralsPanelPM.class);
     229                        localModelProvider.setPresentationModelType(PlainLiteralsPM.class);
    226230                }
    227231
     
    231235
    232236        @Override
    233         public PlainLiteralsPanelPM getPresentationModel()
     237        public PlainLiteralsPM getPresentationModel()
    234238        {
    235239                return this.getLocalModelProvider().getPresentationModel();
     
    238242
    239243        @Override
    240         public void setPresentationModel(PlainLiteralsPanelPM pModel)
     244        public void setPresentationModel(PlainLiteralsPM pModel)
    241245        {
    242246                this.getLocalModelProvider().setPresentationModel(pModel);
     247        }
     248
     249
     250        @Override
     251        public IModelProvider getModelProvider()
     252        {
     253                return this.link.getModelProvider();
     254        }
     255
     256
     257        @Override
     258        public void setModelProvider(IModelProvider provider)
     259        {
     260                this.link.setModelProvider(provider);
     261        }
     262
     263
     264        @Override
     265        public Path getPath()
     266        {
     267                return this.link.getPath();
     268        }
     269
     270
     271        @Override
     272        public void setPath(Path path)
     273        {
     274                this.link.setPath(path);
    243275        }
    244276
     
    389421
    390422
    391         public PlainLiteralsPanelView getTriplesPanelView()
    392         {
    393                 if (plainLiteralsPanelView == null)
    394                 {
    395                         plainLiteralsPanelView = new PlainLiteralsPanelView();
     423        public PlainLiteralsView getTriplesPanelView()
     424        {
     425                if (plainLiteralsView == null)
     426                {
     427                        plainLiteralsView = new PlainLiteralsView();
    396428                        this.panel_1SpringLayout.putConstraint(SpringLayout.NORTH,
    397                                         plainLiteralsPanelView, 177, SpringLayout.NORTH, getPanel_1());
     429                                        plainLiteralsView, 177, SpringLayout.NORTH, getPanel_1());
    398430                        this.panel_1SpringLayout.putConstraint(SpringLayout.EAST,
    399                                         plainLiteralsPanelView, 472, SpringLayout.WEST, getPanel_1());
    400                         plainLiteralsPanelView.setName("plainLiteralsPanelView");
    401 
    402                 }
    403 
    404                 return plainLiteralsPanelView;
    405         }
    406 
    407 
    408         public PlainLiteralsPanelView getTriplesPanelView_1()
     431                                        plainLiteralsView, 472, SpringLayout.WEST, getPanel_1());
     432                        plainLiteralsView.setName("plainLiteralsView");
     433
     434                }
     435
     436                return plainLiteralsView;
     437        }
     438
     439
     440        public PlainLiteralsView getTriplesPanelView_1()
    409441        {
    410442                if (triplesPanelView_1 == null)
    411443                {
    412                         triplesPanelView_1 = new PlainLiteralsPanelView();
     444                        triplesPanelView_1 = new PlainLiteralsView();
    413445                        this.panel_1SpringLayout.putConstraint(SpringLayout.NORTH,
    414446                                        triplesPanelView_1, 6, SpringLayout.SOUTH, getTriplesPanelView());
     
    423455                return triplesPanelView_1;
    424456        }
     457
     458        public PlainLiteralsView getPlainLiteralsView()
     459        {
     460                return getTriplesPanelView();
     461        }
    425462}
  • trunk/skotch/src/main/java/nl/uva/amc/skotch/gui/view/details/panels/PlainLiteralItemPM.java

    r736 r740  
    1414
    1515
    16 public class PlainLiteralPM extends AbstractPM
     16public class PlainLiteralItemPM extends AbstractPM
    1717{
    1818        private static Options<Object> options;
     
    2121        ITextPM language = new TextPM();
    2222       
    23         public PlainLiteralPM(String text, String lang)
     23        public PlainLiteralItemPM(String text, String lang)
    2424        {
    2525                label.setText(text);
     
    3131       
    3232       
    33         public PlainLiteralPM(Literal lit)
     33        public PlainLiteralItemPM(Literal lit)
    3434        {
    3535                this(lit.getLabel(), lit.getLanguage());
  • trunk/skotch/src/main/java/nl/uva/amc/skotch/gui/view/details/panels/PlainLiteralsPM.java

    r736 r740  
    88import nl.eelkevanderhorst.sve.gui.domain.SkosService;
    99import nl.uva.amc.skotch.core.skos.model.SkosElement;
     10import nl.uva.amc.skotch.gui.view.details.IElementPropertyPM;
    1011
     12import org.beanfabrics.context.Context;
    1113import org.beanfabrics.model.AbstractPM;
    1214import org.beanfabrics.model.BooleanPM;
     
    2426
    2527
    26 public class PlainLiteralsPanelPM extends AbstractPM
     28public class PlainLiteralsPM extends AbstractPM implements IElementPropertyPM
    2729{
    28         ListPM<PlainLiteralPM> items = new ListPM<PlainLiteralPM>();
     30        private SkosElement[] elemPath = null;
     31       
     32        ListPM<PlainLiteralItemPM> items = new ListPM<PlainLiteralItemPM>();
    2933        BooleanPM header = new BooleanPM();
    3034       
     
    3337
    3438       
    35         public PlainLiteralsPanelPM()
     39        public PlainLiteralsPM()
    3640        {
    3741                header.setEditable(true);
     
    125129                        for (Map.Entry<String, String> entry : data.entries())
    126130                        {
    127                                 PlainLiteralPM item = new PlainLiteralPM(entry.getValue(), entry.getKey());
     131                                PlainLiteralItemPM item = new PlainLiteralItemPM(entry.getValue(), entry.getKey());
    128132                                this.items.add(item);
    129133                        }
     
    140144                        for (Literal lit : literals)
    141145                        {
    142                                 PlainLiteralPM item = new PlainLiteralPM(lit);                         
     146                                PlainLiteralItemPM item = new PlainLiteralItemPM(lit);                         
    143147                                this.items.add(item);
    144148                        }
     
    146150        }
    147151
     152
     153        @Override
     154        public void setElementPath(SkosElement[] elempath)
     155        {
     156                this.elemPath = elempath;
     157        }
     158       
     159       
     160//      public SkosElement[] getElementPath()
     161//      {
     162//              SkosElement[] elempath;
     163//             
     164//              for (Context context : this.getContext().getParents())
     165//              {
     166//                      context.
     167//              }
     168//      }
     169
    148170       
    149171}
  • trunk/skotch/src/main/java/nl/uva/amc/skotch/gui/view/details/panels/PlainLiteralsView.java

    r736 r740  
    1212import javax.swing.JPanel;
    1313import javax.swing.JScrollPane;
     14
     15import nl.uva.amc.skotch.core.skos.model.impl.ValueProperty;
    1416
    1517import org.beanfabrics.IModelProvider;
     
    2527
    2628
    27 public class PlainLiteralsPanelView extends JPanel implements
    28                 View<PlainLiteralsPanelPM>, ModelSubscriber
     29public class PlainLiteralsView extends JPanel implements View<PlainLiteralsPM>, ModelSubscriber
    2930{
    30         ModelProvider localProvider = new ModelProvider();
     31        /**
     32         * @param mp
     33         * @param detailspnl
     34         * @return
     35         */
     36        public static PlainLiteralsView createPlainLiteralsView(ModelProvider mp, ValueProperty prop)
     37        {
     38                String name = prop.getUri().getLocalName();
     39
     40                PlainLiteralsView litPnl = new PlainLiteralsView();
     41               
     42                litPnl.setModelProvider(mp);
     43                litPnl.setPath(new Path(name));
     44                litPnl.setName(name);
     45
     46                return litPnl;
     47        }
     48
     49       
    3150        Link link = new Link(this);
    3251
     
    4059        BnButton deleteItem = new BnButton();
    4160
    42 
    43         public PlainLiteralsPanelView()
     61        private ModelProvider localProvider;
     62
     63
     64        public PlainLiteralsView()
    4465        {
    4566                initComponents();
     
    139160
    140161        @Override
    141         public PlainLiteralsPanelPM getPresentationModel()
     162        public PlainLiteralsPM getPresentationModel()
    142163        {
    143164                return getLocalModelProvider().getPresentationModel();
     
    146167
    147168        @Override
    148         public void setPresentationModel(PlainLiteralsPanelPM pm)
     169        public void setPresentationModel(PlainLiteralsPM pm)
    149170        {
    150171                getLocalModelProvider().setPresentationModel(pm);
     
    153174
    154175        /**
    155          * @return
     176         * @wbp.nonvisual location=68,269
    156177         */
    157         protected ModelProvider getLocalModelProvider()
    158         {
     178        public ModelProvider getLocalModelProvider()
     179        {
     180                if (this.localProvider == null)
     181                {
     182                        this.localProvider = new ModelProvider();
     183                        this.localProvider.setPresentationModelType(PlainLiteralsPM.class);
     184                }
     185               
    159186                return this.localProvider;
    160187        }
Note: See TracChangeset for help on using the changeset viewer.