Jelajahi Sumber

Get better ObservableController from v0.6.0

Sam Jaffe 5 tahun lalu
induk
melakukan
7422e151e0
2 mengubah file dengan 11 tambahan dan 15 penghapusan
  1. 1 1
      pom.xml
  2. 10 14
      src/main/lombok/org/leumasjaffe/recipe/view/IngredientPanel.java

+ 1 - 1
pom.xml

@@ -75,7 +75,7 @@
     <dependency>
     <dependency>
       <groupId>org.leumasjaffe</groupId>
       <groupId>org.leumasjaffe</groupId>
       <artifactId>observer</artifactId>
       <artifactId>observer</artifactId>
-      <version>0.5.1</version>
+      <version>0.6.0</version>
     </dependency>
     </dependency>
     <dependency>
     <dependency>
       <groupId>org.leumasjaffe</groupId>
       <groupId>org.leumasjaffe</groupId>

+ 10 - 14
src/main/lombok/org/leumasjaffe/recipe/view/IngredientPanel.java

@@ -9,8 +9,8 @@ import java.awt.Insets;
 import javax.swing.event.DocumentListener;
 import javax.swing.event.DocumentListener;
 
 
 import org.leumasjaffe.observer.ObservableController;
 import org.leumasjaffe.observer.ObservableController;
+import org.leumasjaffe.observer.ObservableListener;
 import org.leumasjaffe.observer.ObserverDispatch;
 import org.leumasjaffe.observer.ObserverDispatch;
-import org.leumasjaffe.recipe.model.Amount;
 import org.leumasjaffe.recipe.model.Ingredient;
 import org.leumasjaffe.recipe.model.Ingredient;
 import org.leumasjaffe.recipe.view.formatter.AmountFormatter;
 import org.leumasjaffe.recipe.view.formatter.AmountFormatter;
 
 
@@ -25,9 +25,9 @@ import javax.swing.JLabel;
 @SuppressWarnings("serial")
 @SuppressWarnings("serial")
 @FieldDefaults(level=AccessLevel.PRIVATE, makeFinal=true)
 @FieldDefaults(level=AccessLevel.PRIVATE, makeFinal=true)
 public class IngredientPanel extends JPanel implements AutoGrowPanel.DocumentListenable {
 public class IngredientPanel extends JPanel implements AutoGrowPanel.DocumentListenable {
-	ObservableController<JTextField, Ingredient> nameController;
-	ObservableController<JFormattedTextField, Ingredient> amountController;
-	ObservableController<JTextField, Ingredient> preparationController;
+	ObservableListener<JTextField, Ingredient> nameController;
+	ObservableListener<JFormattedTextField, Ingredient> amountController;
+	ObservableListener<JTextField, Ingredient> preparationController;
 	@Getter(AccessLevel.PACKAGE) JTextField txtName;
 	@Getter(AccessLevel.PACKAGE) JTextField txtName;
 	@Getter(AccessLevel.PACKAGE) JFormattedTextField txtAmount;
 	@Getter(AccessLevel.PACKAGE) JFormattedTextField txtAmount;
 	@Getter(AccessLevel.PACKAGE) JTextField txtPreparation;
 	@Getter(AccessLevel.PACKAGE) JTextField txtPreparation;
@@ -80,16 +80,12 @@ public class IngredientPanel extends JPanel implements AutoGrowPanel.DocumentLis
 		
 		
 		// I technically don't need to listen here as of this change,
 		// I technically don't need to listen here as of this change,
 		// but if I ever restore support for it, it will be convenient.
 		// but if I ever restore support for it, it will be convenient.
-		nameController = new ObservableController<>(txtName,
-				Ingredient::getName, Ingredient::setName,
-				JTextField::setText);
-		amountController = new ObservableController<>(txtAmount,
-				ing -> ing.getAmount().toString(),
-				(ing, str) -> ing.setAmount(new Amount(str)),
-				(c, str) -> c.setValue(new Amount(str)));
-		preparationController = new ObservableController<>(txtPreparation,
-				Ingredient::getPreparation, Ingredient::setPreparation,
-				JTextField::setText);
+		nameController = ObservableController.from(txtName,
+				Ingredient::getName, Ingredient::setName);
+		amountController = ObservableController.from(txtAmount,
+				Ingredient::getAmount, Ingredient::setAmount);
+		preparationController = ObservableController.from(txtPreparation,
+				Ingredient::getPreparation, Ingredient::setPreparation);
 	}
 	}
 
 
 	public IngredientPanel(final Ingredient ingredient) {
 	public IngredientPanel(final Ingredient ingredient) {