Skip to content

Commit eb1d26f

Browse files
committed
More updates to staking GUI
1 parent a87dda0 commit eb1d26f

File tree

8 files changed

+73
-20
lines changed

8 files changed

+73
-20
lines changed

convex-gui/src/main/java/convex/gui/components/account/AccountsPanel.java

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,16 @@
2323
import convex.core.cvm.State;
2424
import convex.core.data.AccountStatus;
2525
import convex.core.data.Address;
26+
import convex.core.lang.RT;
2627
import convex.gui.actor.AccountWindow;
2728
import convex.gui.components.ActionButton;
2829
import convex.gui.components.ActionPanel;
2930
import convex.gui.components.ConvexTable;
3031
import convex.gui.components.renderer.AccountKeyRenderer;
32+
import convex.gui.components.renderer.AddressRenderer;
3133
import convex.gui.components.renderer.BalanceRenderer;
3234
import convex.gui.components.renderer.CellRenderer;
35+
import convex.gui.components.renderer.StringRenderer;
3336
import convex.gui.models.AccountsTableModel;
3437
import convex.gui.models.StateModel;
3538
import convex.gui.utils.Toolkit;
@@ -55,22 +58,26 @@ public AccountsPanel(ConvexLocal convex,StateModel<State> model) {
5558
});
5659

5760
{
58-
CellRenderer cr=new CellRenderer(JLabel.LEFT);
61+
AddressRenderer cr=new AddressRenderer();
5962
cr.setToolTipText("Address of the Convex account. This is the unique ID for the account");
6063
cr.setForeground(Color.WHITE);
6164
table.getColumnModel().getColumn(0).setCellRenderer(cr);
6265
table.getColumnModel().getColumn(0).setPreferredWidth(80);
6366
}
6467

6568
{
66-
CellRenderer actorRenderer = new CellRenderer(JLabel.LEFT);
69+
CellRenderer actorRenderer = new CellRenderer(JLabel.LEFT) {
70+
@Override public void setValue(Object o) {
71+
super.setValue( RT.bool(o)?"Actor":"User");
72+
}
73+
};
6774
actorRenderer.setToolTipText("An Actor account is an autonomous agent or code library on the CVM. A User account can be controlled by a user with the correct key pair.");
6875
table.getColumnModel().getColumn(1).setPreferredWidth(70);
6976
table.getColumnModel().getColumn(1).setCellRenderer(actorRenderer);
7077
}
7178

7279
{
73-
CellRenderer cr=new CellRenderer(JLabel.RIGHT);
80+
StringRenderer cr=new StringRenderer(JLabel.RIGHT);
7481
cr.setToolTipText("Sequence number of the account. This is the total number of user transactions executed.");
7582
table.getColumnModel().getColumn(2).setCellRenderer(cr);
7683
table.getColumnModel().getColumn(2).setPreferredWidth(60);
@@ -84,35 +91,33 @@ public AccountsPanel(ConvexLocal convex,StateModel<State> model) {
8491
}
8592

8693
{
87-
CellRenderer cr=new CellRenderer(JLabel.LEFT);
94+
StringRenderer cr=new StringRenderer(JLabel.LEFT);
8895
cr.setToolTipText("Name of the account in the Convex Registry");
8996
table.getColumnModel().getColumn(4).setPreferredWidth(200);
9097
table.getColumnModel().getColumn(4).setCellRenderer(cr);
9198
}
9299
{
93-
CellRenderer cr=new CellRenderer(JLabel.RIGHT);
100+
StringRenderer cr=new StringRenderer(JLabel.RIGHT);
94101
cr.setToolTipText("Size of the account environment");
95102
table.getColumnModel().getColumn(5).setPreferredWidth(100);
96103
table.getColumnModel().getColumn(5).setCellRenderer(cr);
97104
}
98105

99106
{ // Memory allowance
100-
CellRenderer cr=new CellRenderer(JLabel.RIGHT);
107+
StringRenderer cr=new StringRenderer(JLabel.RIGHT);
101108
cr.setToolTipText("Unused memory allowance of the account");
102109
table.getColumnModel().getColumn(6).setPreferredWidth(100);
103110
table.getColumnModel().getColumn(6).setCellRenderer(cr);
104111
}
105112

106113
{ // Account Controller
107-
CellRenderer cr=new CellRenderer(JLabel.LEFT);
114+
AddressRenderer cr=new AddressRenderer();
108115
cr.setToolTipText("Account Controller. May recover, modify or update the controlled account.");
109116
cr.setForeground(Color.WHITE);
110117
table.getColumnModel().getColumn(7).setPreferredWidth(80);
111118
table.getColumnModel().getColumn(7).setCellRenderer(cr);
112119
}
113120

114-
115-
116121
{ // Account public key
117122
AccountKeyRenderer cr=new AccountKeyRenderer();
118123
cr.setToolTipText("Public key of the account. Used to validate transactions from users.");
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package convex.gui.components.renderer;
2+
3+
import javax.swing.JLabel;
4+
5+
import convex.core.data.Address;
6+
import convex.core.util.Utils;
7+
8+
@SuppressWarnings("serial")
9+
public class AddressRenderer extends CellRenderer {
10+
11+
public AddressRenderer(int alignment) {
12+
super(alignment);
13+
}
14+
15+
public AddressRenderer() {
16+
super(JLabel.LEFT);
17+
}
18+
19+
@Override
20+
public void setValue(Object o) {
21+
String s=Utils.toString(Address.parse(o));
22+
super.setValue(s);
23+
}
24+
}

convex-gui/src/main/java/convex/gui/components/renderer/CellRenderer.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,5 @@ public CellRenderer(int alignment) {
1414
public void setValue(Object value) {
1515
setText(Utils.toString(value));
1616
}
17+
1718
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package convex.gui.components.renderer;
2+
3+
import javax.swing.JLabel;
4+
5+
@SuppressWarnings("serial")
6+
public class StringRenderer extends CellRenderer {
7+
public StringRenderer(int alignment) {
8+
super(alignment);
9+
}
10+
11+
public StringRenderer() {
12+
super(JLabel.RIGHT);
13+
}
14+
15+
}

convex-gui/src/main/java/convex/gui/models/AccountsTableModel.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ public Object getValueAt(int rowIndex, int columnIndex) {
5252
case 0:
5353
return address.toString();
5454
case 1:
55-
return as.isActor()?"Actor":"User";
55+
return as.isActor();
5656
case 2: {
5757
long seq=as.getSequence();
5858
return (seq>=0)?seq:"";

convex-gui/src/main/java/convex/gui/peer/stake/PeerStakePanel.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
import javax.swing.JScrollPane;
77

88
import convex.api.Convex;
9+
import convex.gui.components.ActionButton;
10+
import convex.gui.components.ActionPanel;
911

1012
@SuppressWarnings("serial")
1113
public class PeerStakePanel extends JPanel {
@@ -19,6 +21,10 @@ public PeerStakePanel(Convex convex) {
1921
PeerStakeTable peerTable=new PeerStakeTable(convex);
2022
add(new JScrollPane(peerTable),BorderLayout.CENTER);
2123

24+
ActionPanel ap=new ActionPanel();
25+
add(ap,BorderLayout.SOUTH);
26+
27+
ap.add(new ActionButton("Refresh", 0xe5d5, e->peerTable.refresh()) );
2228
}
2329

2430
}

convex-gui/src/main/java/convex/gui/peer/stake/PeerStakeTable.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919
import convex.core.lang.Reader;
2020
import convex.gui.components.ConvexTable;
2121
import convex.gui.components.renderer.AccountKeyRenderer;
22+
import convex.gui.components.renderer.AddressRenderer;
2223
import convex.gui.components.renderer.BalanceRenderer;
23-
import convex.gui.components.renderer.CellRenderer;
2424

2525
@SuppressWarnings("serial")
2626
public class PeerStakeTable extends ConvexTable {
@@ -47,13 +47,13 @@ public PeerStakeTable(Convex convex) {
4747
{ // URL
4848
String colName="Controller";
4949
tm.addColumn(colName);
50-
TableColumn col=new TableColumn(1,150,new CellRenderer(JLabel.LEFT),null);
50+
TableColumn col=new TableColumn(1,150,new AddressRenderer(JLabel.LEFT),null);
5151
col.setHeaderValue(colName);
5252
this.getColumnModel().addColumn(col);
5353
}
5454

5555
{ // Stake
56-
String colName="Total Stake";
56+
String colName="Staked Coins";
5757
tm.addColumn(colName);
5858
TableColumn col=new TableColumn(2,300,new BalanceRenderer(),null);
5959
col.setHeaderValue(colName);
@@ -78,11 +78,13 @@ public boolean isCellEditable(int row, int column) {
7878
return false;
7979
}
8080

81-
private void refresh() {
81+
void refresh() {
82+
tm.setRowCount(0);
8283
String cs=("(mapv (fn [[pk p]] "
8384
+"[pk "
8485
+" (:controller p)"
8586
+" (:balance p) "
87+
+" (:timestamp p) "
8688
+" :FOO"
8789
+"])"
8890
+"(:peers *state*))");

convex-restapi/src/main/java/convex/restapi/RESTServer.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
import io.javalin.openapi.plugin.OpenApiPlugin;
3535
import io.javalin.openapi.plugin.redoc.ReDocPlugin;
3636
import io.javalin.openapi.plugin.swagger.SwaggerPlugin;
37-
import io.javalin.util.JavalinBindException;
37+
import io.javalin.util.JavalinException;
3838

3939
public class RESTServer implements Closeable {
4040
protected static final Logger log = LoggerFactory.getLogger(RESTServer.class.getName());
@@ -48,7 +48,7 @@ private RESTServer(Server server) {
4848
this.convex = ConvexLocal.create(server, server.getPeerController(), server.getKeyPair());
4949
}
5050

51-
private Javalin buildApp() {
51+
private Javalin buildApp(boolean useSSL) {
5252
SslPlugin sslPlugin = getSSLPlugin(server.getConfig());
5353
Javalin app = Javalin.create(config -> {
5454
config.staticFiles.enableWebjars();
@@ -59,7 +59,7 @@ private Javalin buildApp() {
5959
});
6060
});
6161

62-
if (sslPlugin!=null) {
62+
if (useSSL&&(sslPlugin!=null)) {
6363
config.registerPlugin(sslPlugin);
6464
}
6565

@@ -214,15 +214,15 @@ public void start() {
214214
public synchronized void start(Integer port) {
215215
close();
216216
try {
217-
javalin=buildApp();
217+
javalin=buildApp(true);
218218
start(javalin,port);
219-
} catch (JavalinBindException e) {
219+
} catch (JavalinException e) {
220220
if (port!=null) throw e; // only try again if port unspecified
221221
log.warn("Specified port "+port+"already in use, chosing another at random");
222222
close();
223223

224224
port=0; // use random port
225-
javalin=buildApp();
225+
javalin=buildApp(false);
226226
start(javalin,port);
227227
}
228228
}

0 commit comments

Comments
 (0)