]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.district.network/src/org/simantics/district/network/profile/DiagramSettings.java
Make defaults to work & remove apply button in dynamic visualisations
[simantics/district.git] / org.simantics.district.network / src / org / simantics / district / network / profile / DiagramSettings.java
index 8136b19c257a37f62d47b14e751178a94cb1730e..f76a4534a59f56d77f6586b0aa34d2430442c7e4 100644 (file)
@@ -3,35 +3,41 @@ package org.simantics.district.network.profile;
 import java.util.Optional;
 
 import org.simantics.db.Resource;
+import org.simantics.scl.runtime.function.Function1;
 
 /**
  * @author Tuukka Lehtonen
  */
 public class DiagramSettings {
 
-       public final Optional<Resource> vertexScalingProperty;
-       public final double vertexScalingScale;
-       public final Optional<Resource> edgeThicknessProperty;
-       public final double edgeThicknessScale;
+       public final Optional<Function1<Resource, Double>> arrowLengthProperty;
+       public final double arrowLengthGain;
+       public final double arrowLengthBias;
 
-       public DiagramSettings(Resource vertexScalingProperty, double vertexScalingScale, Resource edgeThicknessProperty, double edgeThicknessScale) {
-               this.vertexScalingProperty = Optional.ofNullable(vertexScalingProperty);
-               this.vertexScalingScale = vertexScalingScale;
-               this.edgeThicknessProperty = Optional.ofNullable(edgeThicknessProperty);
-               this.edgeThicknessScale = edgeThicknessScale;
+       public DiagramSettings(
+                       Function1<Resource, Double> arrowLengthProperty, double arrowLengthGain, double arrowLengthBias
+                       ) {
+               this.arrowLengthProperty = Optional.ofNullable(arrowLengthProperty);
+               this.arrowLengthGain = arrowLengthGain;
+               this.arrowLengthBias = arrowLengthBias;
        }
 
        @Override
        public int hashCode() {
                final int prime = 31;
                int result = 1;
-               result = prime * result + edgeThicknessProperty.hashCode();
-               long temp;
-               temp = Double.doubleToLongBits(edgeThicknessScale);
+               //result = prime * result + edgeThicknessProperty.hashCode();
+               result = prime * result + arrowLengthProperty.hashCode();
+               long temp = result;
+               //temp = Double.doubleToLongBits(edgeThicknessGain);
                result = prime * result + (int) (temp ^ (temp >>> 32));
-//             result = prime * result + vertexScalingProperty.hashCode();
-               temp = Double.doubleToLongBits(vertexScalingScale);
+               //temp = Double.doubleToLongBits(edgeThicknessBias);
                result = prime * result + (int) (temp ^ (temp >>> 32));
+               temp = Double.doubleToLongBits(arrowLengthGain);
+               result = prime * result + (int) (temp ^ (temp >>> 32));
+               temp = Double.doubleToLongBits(arrowLengthBias);
+               result = prime * result + (int) (temp ^ (temp >>> 32));
+
                return result;
        }
 
@@ -44,16 +50,22 @@ public class DiagramSettings {
                if (getClass() != obj.getClass())
                        return false;
                DiagramSettings other = (DiagramSettings) obj;
-               if (!edgeThicknessProperty.equals(other.edgeThicknessProperty))
-                       return false;
-               if (Double.doubleToLongBits(edgeThicknessScale) != Double.doubleToLongBits(other.edgeThicknessScale))
+
+               if (!arrowLengthProperty.equals(other.arrowLengthProperty))
                        return false;
-               if (!vertexScalingProperty.equals(other.vertexScalingProperty))
+               if (Double.doubleToLongBits(arrowLengthGain) != Double.doubleToLongBits(other.arrowLengthGain))
                        return false;
-               if (Double.doubleToLongBits(vertexScalingScale) != Double.doubleToLongBits(other.vertexScalingScale))
+               if (Double.doubleToLongBits(arrowLengthBias) != Double.doubleToLongBits(other.arrowLengthBias))
                        return false;
+
                return true;
        }
 
-       
+       @Override
+       public String toString() {
+               return String.format("DiagramSettings[%s * %f + %f]",
+                               arrowLengthProperty, arrowLengthGain, arrowLengthBias
+                               );
+       }
+
 }