ソースを参照

work work - css stuff

Matthias 8 年 前
コミット
b907011cf5

+ 3 - 0
scopviz/src/main/java/de/tu_darmstadt/informatik/tk/scopviz/main/MainApp.java

@@ -5,6 +5,7 @@ import java.io.IOException;
 import de.tu_darmstadt.informatik.tk.scopviz.debug.Debug;
 import de.tu_darmstadt.informatik.tk.scopviz.io.GraphMLExporter;
 import de.tu_darmstadt.informatik.tk.scopviz.ui.GraphDisplayManager;
+import de.tu_darmstadt.informatik.tk.scopviz.ui.css.CSSManager;
 import javafx.application.Application;
 import javafx.event.EventHandler;
 import javafx.fxml.FXMLLoader;
@@ -71,6 +72,8 @@ public class MainApp extends Application {
 			GraphDisplayManager.setCurrentLayer(Layer.UNDERLAY);
 			GraphDisplayManager.addGraph(Debug.getDefaultUnderlayGraph(), true);
 		}
+
+		CSSManager.addRule("node{text-alignment:at-right; size:15px;}");
 	}
 
 	/**

+ 10 - 3
scopviz/src/main/java/de/tu_darmstadt/informatik/tk/scopviz/ui/css/CSSCondition.java

@@ -26,11 +26,18 @@ class CSSCondition {
 		return classes.size();
 	}
 
+	int getValue() {
+		return value;
+	}
+
 	@Override
 	public String toString() {
-		String ret = classes.toString().replace(", ", ".").replace("[", ".").replace("]", "");
+		String ret = "";
+		for (String c : classes){
+			ret.concat(".").concat(c);
+		}
 		if (type == null)
-			return type.concat(ret);
-		return ret;
+			return "bbaa" + ret;
+		return "bbaca" + type.concat(ret);
 	}
 }

+ 9 - 0
scopviz/src/main/java/de/tu_darmstadt/informatik/tk/scopviz/ui/css/CSSConditionException.java

@@ -0,0 +1,9 @@
+package de.tu_darmstadt.informatik.tk.scopviz.ui.css;
+
+public class CSSConditionException extends CSSException {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = -3594305376563812699L;
+}

+ 27 - 29
scopviz/src/main/java/de/tu_darmstadt/informatik/tk/scopviz/ui/css/CSSManager.java

@@ -8,7 +8,7 @@ public class CSSManager {
 	/**
 	 * Du zerstörst diesen REGEX und Matthias zerstört dich
 	 */
-	private static final String CSS_MATCH_REGEX = "(\\s*([A-Za-z]+|[A-Za-z]*(\\.[A-Za-z_-]*)+)\\s*\\{\\s*[A-Za-z_-]+\\s*\\:\\s*[A-Za-z\\(\\)_\\#\\'\\\"-]+\\s*\\;?\\s*\\})+\\s*";
+	private static final String CSS_MATCH_REGEX = "(\\s*([A-Za-z]+|[A-Za-z]*(\\.[A-Za-z_-]*)+)\\s*\\{(\\s*[A-Za-z_-]+\\s*\\:\\s*[0-9A-Za-z\\(\\)_\\#\\'\\\"-]+\\s*\\;?)+\\s*\\})+\\s*";
 
 	static HashSet<CSSRule> rules = new HashSet<CSSRule>();
 
@@ -18,37 +18,35 @@ public class CSSManager {
 			return;
 		}
 
-		HashSet<CSSCondition> conditions = new HashSet<>();
-		String[] ruleSplit = rule.split("{");
-		int i = 0;
-		String front = ruleSplit[0].trim();
-		while (i < ruleSplit.length - 1) {
-			String type = "";
-			HashSet<String> classes = new HashSet<String>();
-			if (front.contains(".")) {
-				String[] dots = front.split(".");
-				int j = 1;
-				if (front.startsWith(".")) {
-					j = 0;
-				} else {
-					type = dots[0];
-				}
-				while (j < dots.length) {
-					classes.add(dots[i]);
-				}
-			} else {
-				type = front;
-			}
-			conditions.add(new CSSCondition(type, classes));
-			i++;
+		String[] sArray = rule.split("\\}");
+		for (String s : sArray) {
+			CSSRule newRule = extractRule(s);
+			rules.add(newRule);
+			Debug.out(newRule.toString() + " added.");
 		}
+	}
 
-		// TODO , split einfügen
-
-		String css = null;
+	private static CSSRule extractRule(String s) {
+		String[] sArray = s.split("\\{");
+		return new CSSRule(extractConditions(sArray[0]), sArray[1]);
+	}
 
-		CSSRule e = new CSSRule(conditions, css);
+	private static HashSet<CSSCondition> extractConditions(String s) {
+		HashSet<CSSCondition> conditions = new HashSet<>();
+		String[] sArray = s.split("\\,");
+		for (String cond : sArray) {
+			conditions.add(extractCondition(cond));
+		}
+		return conditions;
+	}
 
-		rules.add(e);
+	private static CSSCondition extractCondition(String s) {
+		HashSet<String> classes = new HashSet<String>();
+		String[] sArray = s.split("\\.");
+		for (int i = 1; i < sArray.length; i++) {
+			classes.add(sArray[i]);
+		}
+		return new CSSCondition(sArray[0], classes);
 	}
+
 }

+ 1 - 1
scopviz/src/main/java/de/tu_darmstadt/informatik/tk/scopviz/ui/css/CSSRule.java

@@ -32,7 +32,7 @@ class CSSRule {
 
 	@Override
 	public String toString() {
-		return conditions.toString().replace("[", "").replace("]", "") + " { " + css + " }";
+		return "aabb"+conditions.toString().replace("[", "").replace("]", "") + " { " + css + " }";
 	}
 
 }

+ 10 - 0
scopviz/src/main/java/de/tu_darmstadt/informatik/tk/scopviz/ui/css/CSSSytnaxException.java

@@ -0,0 +1,10 @@
+package de.tu_darmstadt.informatik.tk.scopviz.ui.css;
+
+public class CSSSytnaxException extends CSSException {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = -4040313744607257567L;
+
+}