Author: kono
Date: 2010-08-09 18:43:44 -0700 (Mon, 09 Aug 2010)
New Revision: 21277

Added:
   
core3/viewmodel-impl/trunk/src/main/java/org/cytoscape/view/model/internal/ViewImpl.java
Log:
Start implementing Row-Oriented version of View Model.

Added: 
core3/viewmodel-impl/trunk/src/main/java/org/cytoscape/view/model/internal/ViewImpl.java
===================================================================
--- 
core3/viewmodel-impl/trunk/src/main/java/org/cytoscape/view/model/internal/ViewImpl.java
                            (rev 0)
+++ 
core3/viewmodel-impl/trunk/src/main/java/org/cytoscape/view/model/internal/ViewImpl.java
    2010-08-10 01:43:44 UTC (rev 21277)
@@ -0,0 +1,94 @@
+package org.cytoscape.view.model.internal;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.cytoscape.model.SUIDFactory;
+import org.cytoscape.view.model.View;
+import org.cytoscape.view.model.ViewChangeListener;
+import org.cytoscape.view.model.VisualProperty;
+
+
+/**
+ * This is an implementation of row-oriented ViewModel.
+ * 
+ * @author kono
+ *
+ * @param <M>
+ */
+public class ViewImpl<M> implements View<M> {
+
+       private final M model;
+       private final long suid;
+       
+       //TODO: Thread safety?
+       private final Map<VisualProperty<?>, Object> visualPorperties;
+       private final Map<VisualProperty<?>, Object> visualPorpertyLocks;
+       
+       
+       public ViewImpl(final M model) {
+               this.suid = SUIDFactory.getNextSUID();
+               this.model = model;
+               
+               this.visualPorperties = new HashMap<VisualProperty<?>, 
Object>();
+               this.visualPorpertyLocks = new HashMap<VisualProperty<?>, 
Object>();
+       }
+
+       @Override
+       public M getModel() {
+               return model;
+       }
+
+       
+       @Override
+       public long getSUID() {
+               return suid;
+       }
+       
+
+       @Override
+       public <T, V extends T> void setVisualProperty(
+                       VisualProperty<? extends T> vp, V value) {
+               this.visualPorperties.put(vp, value);
+       }
+
+       
+       @SuppressWarnings("unchecked")
+       @Override
+       public <T> T getVisualProperty(VisualProperty<T> vp) {
+               return (T) this.visualPorperties.get(vp);
+       }
+
+       
+       @Override
+       public <T, V extends T> void setLockedValue(VisualProperty<? extends T> 
vp,
+                       V value) {
+               // TODO Auto-generated method stub
+
+       }
+
+       @Override
+       public boolean isValueLocked(VisualProperty<?> vp) {
+               // TODO Auto-generated method stub
+               return false;
+       }
+
+       @Override
+       public void clearValueLock(VisualProperty<?> vp) {
+               // TODO Auto-generated method stub
+
+       }
+
+       @Override
+       public void addViewChangeListener(ViewChangeListener vcl) {
+               // TODO Auto-generated method stub
+
+       }
+
+       @Override
+       public void removeViewChangeListener(ViewChangeListener vcl) {
+               // TODO Auto-generated method stub
+
+       }
+
+}

-- 
You received this message because you are subscribed to the Google Groups 
"cytoscape-cvs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/cytoscape-cvs?hl=en.

Reply via email to