diff --git a/.classpath b/.classpath
new file mode 100644
index 0000000..fb50116
--- /dev/null
+++ b/.classpath
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/src/BrowserView.java b/src/BrowserView.java
index 7d59606..94621e0 100644
--- a/src/BrowserView.java
+++ b/src/BrowserView.java
@@ -1,4 +1,6 @@
import java.awt.Dimension;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
import java.net.URL;
import java.util.Optional;
import java.util.ResourceBundle;
@@ -200,21 +202,16 @@ private Node makeNavigationPanel () {
HBox result = new HBox();
// create buttons, with their associated actions
// old style way to do set up callback (anonymous class)
- myBackButton = makeButton("BackCommand", new EventHandler() {
- @Override
- public void handle (ActionEvent event) {
- back();
- }
- });
+ myBackButton = makeButton("BackCommand","back");
result.getChildren().add(myBackButton);
// new style way to do set up callback (lambdas)
- myNextButton = makeButton("NextCommand", event -> next());
+ myNextButton = makeButton("NextCommand", "next");
result.getChildren().add(myNextButton);
- myHomeButton = makeButton("HomeCommand", event -> home());
+ myHomeButton = makeButton("HomeCommand", "home");
result.getChildren().add(myHomeButton);
// if user presses button or enter in text field, load/show the URL
EventHandler showHandler = new ShowPage();
- result.getChildren().add(makeButton("GoCommand", showHandler));
+ result.getChildren().add(makeButton("GoCommand", "handleShow"));
myURLDisplay = makeInputField(40, showHandler);
result.getChildren().add(myURLDisplay);
return result;
@@ -226,30 +223,52 @@ private Node makePreferencesPanel () {
myFavorites = new ComboBox();
myFavorites.setPromptText(myResources.getString("FavoriteFirstItem"));
myFavorites.valueProperty().addListener((o, s1, s2) -> showFavorite(s2));
- result.getChildren().add(makeButton("AddFavoriteCommand", event -> addFavorite()));
+ result.getChildren().add(makeButton("AddFavoriteCommand","addFavorite"));
result.getChildren().add(myFavorites);
- result.getChildren().add(makeButton("SetHomeCommand", event -> {
- myModel.setHome();
- enableButtons();
- }));
+ result.getChildren().add(makeButton("SetHomeCommand", "handleSetHome"));
return result;
}
+
+ private void handleSetHome() {
+ myModel.setHome();
+ enableButtons();
+ }
// makes a button using either an image or a label
- private Button makeButton (String property, EventHandler handler) {
+
+ private Button makeButton (String property, String handler ){ //[EventHandler handler) {
// represent all supported image suffixes
final String IMAGEFILE_SUFFIXES =
- String.format(".*\\.(%s)", String.join("|", ImageIO.getReaderFileSuffixes()));
+ String.format(".*\\.(%s)", String.join("|", ImageIO.getReaderFileSuffixes()));
Button result = new Button();
String label = myResources.getString(property);
if (label.matches(IMAGEFILE_SUFFIXES)) {
result.setGraphic(new ImageView(
- new Image(getClass().getResourceAsStream(DEFAULT_RESOURCE_PACKAGE + label))));
+ new Image(getClass().getResourceAsStream(DEFAULT_RESOURCE_PACKAGE + label))));
} else {
result.setText(label);
}
- result.setOnAction(handler);
+ // Class> c = Class.forName(args[);
+ //Class[] argTypes = new Class[] { String[].class };
+ Method method = null;
+
+ try {
+ method = this.getClass().getDeclaredMethod(handler);
+ //main.invoke(this);
+ //result.setOnAction( e -> method.invoke(this));
+ }
+ catch (ReflectiveOperationException | IllegalArgumentException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ //String[] mainArgs = Arrays.copyOfRange(args, 1, args.length);
+ //System.out.format("invoking %s.main()%n", c.getName());
+ //main.invoke(null);
+
+
+
return result;
}
@@ -269,6 +288,10 @@ public void handle (ActionEvent event) {
showPage(myURLDisplay.getText());
}
}
+
+ private void handleShow() {
+ showPage(myURLDisplay.getText());
+ }
// Inner class to deal with link-clicks and mouse-overs Mostly taken from