Skip to content

Commit ac0437b

Browse files
authored
Merge pull request #150 from UCSDOalads/funcGroup
Fixed the displayBox canUpdate issue & minor changes to fix the type system
2 parents f60fdd0 + 27a04d3 commit ac0437b

5 files changed

Lines changed: 41 additions & 28 deletions

File tree

src/actions/UpdateDataDisplayBoxAction.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@
55

66
import javax.swing.JOptionPane;
77

8-
import actions.edit.undoredo.SharedUndoRedoActionManager;
9-
import actions.edit.undoredo.UndoRedoableInterface;
10-
import actions.menu.ActionsMenuBarTitles;
118
import paintcomponents.NoConnectingLineSegmentException;
129
import paintcomponents.data.DataDisplayPaintComponent;
1310
import paintcomponents.data.DataFromPointNoDataProviderException;
1411
import paintcomponents.data.DataFromPointProviderCannotProvideDataException;
1512
import ui.PaintPanel;
13+
import actions.edit.undoredo.SharedUndoRedoActionManager;
14+
import actions.edit.undoredo.UndoRedoableInterface;
15+
import actions.menu.ActionsMenuBarTitles;
1616

1717
public class UpdateDataDisplayBoxAction extends MenuBarPaintAction {
1818

@@ -25,7 +25,9 @@ public boolean canPerformAction() {
2525

2626
if(panel.getSelectTool().getSelectedComponents().size() == 1){
2727
if(panel.getSelectTool().getSelectedComponents().get(0) instanceof DataDisplayPaintComponent){
28-
return ((DataDisplayPaintComponent) panel.getSelectTool().getSelectedComponents().get(0)).canUpdate();
28+
// return true;
29+
return ((DataDisplayPaintComponent) panel.getSelectTool()
30+
.getSelectedComponents().get(0)).canUpdate();
2931
}
3032
}
3133
return false;

src/actions/global/globalactions/AddDataDisplayBoxGlobalAction.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,17 @@
11
package actions.global.globalactions;
22

3-
import java.util.ArrayList;
4-
5-
import paintcomponents.SimplePoint;
63
import paintcomponents.data.DataDisplayPaintComponent;
7-
import paintcomponents.data.DataInputTextfieldPaintComponent;
4+
import ui.PaintPanel;
85
import actions.edit.undoredo.SharedUndoRedoActionManager;
96
import actions.edit.undoredo.UndoRedoableInterface;
107
import actions.global.GlobalPaintAction;
11-
import ui.PaintPanel;
128

139
public class AddDataDisplayBoxGlobalAction extends GlobalPaintAction {
1410

1511
private String dataDisplay;
1612
private int x;
1713
private int y;
14+
1815
private DataDisplayPaintComponent comp;
1916

2017
public void setDisplayString(String dataDisplay) {
@@ -40,11 +37,14 @@ public void setY(int y) {
4037
@Override
4138
protected void execute(PaintPanel panel) {
4239
comp = new DataDisplayPaintComponent(
40+
// DataDisplayPaintComponent comp = new DataDisplayPaintComponent(
4341
dataDisplay, x, y);
42+
4443
if (panel.getSelectTool() != null) {
45-
panel.getSelectTool().clearSelection();
46-
panel.getSelectTool().selectComponent(comp);
44+
panel.getSelectTool().clearSelection();
45+
panel.getSelectTool().selectComponent(comp);
4746
}
47+
4848
panel.addPaintComponent(comp);
4949

5050
// push action to manager

src/paintcomponents/data/DataDisplayPaintComponent.java

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -33,26 +33,27 @@ public DataDisplayPaintComponent(String displayingText, int x, int y) {
3333
* @throws NoSuchElementException
3434
* @see DataToPoint.fetchData for exception details
3535
*/
36-
public void updateDisplayText() throws NoSuchElementException, NoConnectingLineSegmentException, DataFromPointNoDataProviderException, DataFromPointProviderCannotProvideDataException{
36+
public void updateDisplayText() throws NoSuchElementException, NoConnectingLineSegmentException,
37+
DataFromPointNoDataProviderException, DataFromPointProviderCannotProvideDataException{
3738
Object data = getToPoints().get(0).fetchData();
38-
if(data instanceof String){
39+
this.setDisplayingText(data.toString());
40+
/*if(data instanceof String){
3941
this.setDisplayingText(data.toString());
4042
} else {
41-
this.setDisplayingText("Error: Not A String :: " + "Type : " + data.getClass().toString() + " Value: " + data.toString());
42-
}
43+
this.setDisplayingText("Error: Not A String :: " + "Type : " +
44+
data.getClass().toString() + " Value: " + data.toString());
45+
}*/
4346
}
4447

45-
public boolean canUpdate(){
46-
try {
47-
Object data = getToPoints().get(0).fetchData();
48-
if(data instanceof String){
49-
return true;
50-
}
51-
} catch (Exception e) {
52-
return false;
53-
}
54-
return false;
48+
public boolean canUpdate() {
49+
return true; // temporary
50+
/*
51+
* try { Object data = getToPoints().get(0).fetchData(); if (data
52+
* instanceof String) { return true; } } catch (Exception e) { return
53+
* false; } return false;
54+
*/
5555
}
56+
5657
@Override
5758
public void saveToElement(Element rootElement, Document doc) {
5859
super.saveToElement(rootElement, doc);

src/paintcomponents/data/DataToPoint.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,11 @@ public DataToPoint(int x, int y, Type expectedType) {
5050
* @throws DataFromPointProviderCannotProvideDataException when the connecting dataInputPoint's data provider cannot provide a information
5151
* @throws DataFromPointNoDataProviderException when the connecting DataInputPoint does not have a data provider associated
5252
*/
53-
public Object fetchData() throws NoConnectingLineSegmentException, NoSuchElementException, DataFromPointNoDataProviderException, DataFromPointProviderCannotProvideDataException{
53+
public Object fetchData() throws NoConnectingLineSegmentException, NoSuchElementException,
54+
DataFromPointNoDataProviderException, DataFromPointProviderCannotProvideDataException{
5455
if(this.lineSegment == null) throw new NoConnectingLineSegmentException();
5556

56-
Object returnVal = lineSegment.getFromPoint().getData().toString();
57+
Object returnVal = lineSegment.getFromPoint().getData();// .toString();
5758
if(returnVal == null) throw new NoSuchElementException();
5859
return returnVal;
5960

src/paintcomponents/java/lazy/MethodPaintComponent.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,11 @@ public class MethodPaintComponent extends DataTextIOPaintComponent
2626
implements DataFromPointDataProvider {
2727

2828
private Method displayingMethod;
29+
private Class<?>[] wantedType;
2930

3031
public MethodPaintComponent(Method displayingMethod, int x, int y) {
3132
super(displayingMethod.toString(), x, y);
33+
this.wantedType = displayingMethod.getParameterTypes();
3234
this.displayingMethod = displayingMethod;
3335
init();
3436
}
@@ -100,6 +102,7 @@ public Object provideInformationToDataFromPoint(
100102
Object operatingInstance = null;
101103
try {
102104
operatingInstance = toPoints.get(0).fetchData();
105+
System.out.println(operatingInstance.getClass());
103106
} catch (NoSuchElementException | NoConnectingLineSegmentException
104107
| DataFromPointNoDataProviderException
105108
| DataFromPointProviderCannotProvideDataException e1) {
@@ -116,14 +119,20 @@ public Object provideInformationToDataFromPoint(
116119
DataToPoint toPoint = toPoints.get(i+1);
117120
try {
118121
args[i] = toPoint.fetchData();
122+
//This usage's effects haven't been verified to be useful.
123+
// ***** DO NOT FOLLOW THIS USAGE IF YOU'RE NOT CLEAR WHAT YOU'RE DOING ******
124+
if (wantedType[i].isAssignableFrom(String.class)) {
125+
args[i] = wantedType[i].cast(args[i]);
126+
}
119127
} catch (NoSuchElementException | NoConnectingLineSegmentException
120128
| DataFromPointNoDataProviderException
121129
| DataFromPointProviderCannotProvideDataException e) {
122130
e.printStackTrace();
123131
// TODO Handle Exception
124132
// arguments must be valid
125133
throw new IllegalStateException();
126-
}
134+
}
135+
127136
}
128137

129138
try {

0 commit comments

Comments
 (0)