Skip to content

Commit

Permalink
- Upgrade to a "toolbar" of icons to control scripts instead of plain…
Browse files Browse the repository at this point in the history
…text

- Disable "Start Script" by default, it will enable once a script is selected
  • Loading branch information
myzsqn committed Mar 14, 2022
1 parent 75b8134 commit 3da82f1
Show file tree
Hide file tree
Showing 7 changed files with 100 additions and 53 deletions.
140 changes: 92 additions & 48 deletions src/main/java/rsb/plugin/ScriptPanel.java
Original file line number Diff line number Diff line change
@@ -1,16 +1,15 @@
package rsb.plugin;

import net.runelite.client.ui.components.materialtabs.MaterialTab;
import net.runelite.client.ui.components.materialtabs.MaterialTabGroup;
import net.runelite.client.util.ImageUtil;
import rsb.botLauncher.RuneLite;
import rsb.internal.ScriptHandler;
import rsb.internal.globval.GlobalConfiguration;
import rsb.script.Script;
import rsb.service.ScriptDefinition;
import rsb.service.ServiceException;

import java.awt.*;
import java.awt.event.*;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.Map;
import javax.swing.*;
import javax.swing.GroupLayout;

Expand All @@ -24,9 +23,10 @@ public class ScriptPanel extends JPanel {
private JButton buttonStart;
private JButton buttonPause;
private JButton buttonStop;
private JButton buttonScriptsFolder;
private MaterialTab buttonScriptsFolder;
private JButton buttonForums;
private ScriptSelector scriptSelector;
private MaterialTabGroup scriptPanelToolbar;

public ScriptPanel(RuneLite bot) {
this.bot = bot;
Expand Down Expand Up @@ -87,13 +87,11 @@ private void initComponents() {
//Make a search area
scriptSelector.getSearch();
scriptSelector.load();
scriptSelector.buttonStart = new JButton();
scriptSelector.buttonPause = new JButton();
scriptSelector.buttonStop = new JButton();
scriptSelector.buttonReload = new JButton();
buttonScriptsFolder = new JButton();
buttonForums = new JButton();

scriptPanelToolbar = new MaterialTabGroup();
scriptPanelToolbar.setLayout(new GridLayout(1, 5, 5, 5));

//======== this ========
setBorder (new javax. swing. border. CompoundBorder( new javax .swing .border .TitledBorder (new javax. swing. border. EmptyBorder( 0
, 0, 0, 0) , "", javax. swing. border. TitledBorder. CENTER, javax. swing. border. TitledBorder. BOTTOM
Expand All @@ -105,24 +103,87 @@ private void initComponents() {
scriptsSelectionScrollPane.setViewportView(scriptSelector.table);

//---- buttonStart ----
scriptSelector.buttonStart.setText("Start");
scriptSelector.buttonStart.addActionListener(scriptSelector::buttonStartActionPerformed);
// scriptSelector.buttonStart.setText("Start");
// scriptSelector.buttonStart.addActionListener(scriptSelector::buttonStartActionPerformed);
final BufferedImage startIcon = ImageUtil.loadImageResource(getClass(), "start.png");
scriptSelector.buttonStart = new MaterialTab(new ImageIcon(startIcon.getScaledInstance(24, 24, 5)), scriptPanelToolbar, null);
scriptSelector.buttonStart.setToolTipText("Start selected script");
scriptSelector.buttonStart.setSize(new Dimension(28, 28));
scriptSelector.buttonStart.setMinimumSize(new Dimension(0, 28));
scriptSelector.buttonStart.setEnabled(false);
scriptSelector.buttonStart.setOpaque(true);
scriptSelector.buttonStart.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent mouseEvent)
{
scriptSelector.buttonStartActionPerformed(null);
}
});
scriptPanelToolbar.addTab(scriptSelector.buttonStart);

//---- buttonPause ----
scriptSelector.buttonPause.setText("Pause");
scriptSelector.buttonPause.addActionListener(scriptSelector::buttonPauseActionPerformed);

//---- buttonStop ----
scriptSelector.buttonStop.setText("Stop");
scriptSelector.buttonStop.addActionListener(scriptSelector::buttonStopActionPerformed);
// scriptSelector.buttonPause.setText("Pause");
// scriptSelector.buttonPause.addActionListener(scriptSelector::buttonPauseActionPerformed);
final BufferedImage pauseIcon = ImageUtil.loadImageResource(getClass(), "pause.png");
scriptSelector.buttonPause = new MaterialTab(new ImageIcon(pauseIcon.getScaledInstance(20, 20, 5)), scriptPanelToolbar, null);
scriptSelector.buttonPause.setToolTipText("Pause the active script");
scriptSelector.buttonPause.setSize(new Dimension(28, 28));
scriptSelector.buttonPause.setMinimumSize(new Dimension(0, 0));
scriptSelector.buttonPause.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent mouseEvent)
{
scriptSelector.buttonPauseActionPerformed(null);
}
});
scriptPanelToolbar.addTab(scriptSelector.buttonPause);


// //---- buttonStop ----
// scriptSelector.buttonStop.setText("Stop");
// scriptSelector.buttonStop.addActionListener(scriptSelector::buttonStopActionPerformed);
final BufferedImage stopIcon = ImageUtil.loadImageResource(getClass(), "stop.png");
scriptSelector.buttonStop = new MaterialTab(new ImageIcon(stopIcon.getScaledInstance(20, 20, 5)), scriptPanelToolbar, null);
scriptSelector.buttonStop.setToolTipText("Stop running the active script");
scriptSelector.buttonStop.setSize(new Dimension(28, 28));
scriptSelector.buttonStop.setMinimumSize(new Dimension(0, 28));
scriptSelector.buttonStop.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent mouseEvent)
{
scriptSelector.buttonStopActionPerformed(null);
}
});
scriptPanelToolbar.addTab(scriptSelector.buttonStop);

//---- buttonReload ----
scriptSelector.buttonReload.setText("Reload");
scriptSelector.buttonReload.addActionListener(scriptSelector::buttonReloadActionPerformed);
final BufferedImage iconImage = ImageUtil.loadImageResource(getClass(), "reload.png");
scriptSelector.buttonReload = new MaterialTab(new ImageIcon(iconImage.getScaledInstance(20, 20, 5)), scriptPanelToolbar, null);
scriptSelector.buttonReload.setToolTipText("Reload Plugins");
scriptSelector.buttonReload.setSize(new Dimension(28, 28));
scriptSelector.buttonReload.setMinimumSize(new Dimension(0, 28));
scriptSelector.buttonReload.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent mouseEvent)
{
scriptSelector.buttonReloadActionPerformed();
}
});
scriptPanelToolbar.addTab(scriptSelector.buttonReload);

//---- buttonScriptsFolder ----
buttonScriptsFolder.setText("Scripts Folder");
buttonScriptsFolder.addActionListener(e -> openScriptsFolderPerformed(e));
final BufferedImage folder = ImageUtil.loadImageResource(getClass(), "open-folder.png");
buttonScriptsFolder = new MaterialTab(new ImageIcon(folder.getScaledInstance(20, 20, 5)), scriptPanelToolbar, null);
buttonScriptsFolder.setToolTipText("Open scripts folder");
buttonScriptsFolder.setOpaque(true);
buttonScriptsFolder.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent mouseEvent)
{
openScriptsFolderPerformed(null);
}
});
scriptPanelToolbar.addTab(buttonScriptsFolder);

//---- buttonForums ----
buttonForums.setText("Forums");
Expand All @@ -138,29 +199,20 @@ private void initComponents() {
private void assignLayouts() {
GroupLayout layout = new GroupLayout(this);
setLayout(layout);

layout.setHorizontalGroup(
layout.createParallelGroup()
.addComponent(scriptPanelToolbar, 0, 240, Short.MAX_VALUE)
.addGap(10, 10, 10)
.addComponent(scriptsSelectionScrollPane, GroupLayout.DEFAULT_SIZE, 240, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup()
.addGroup(layout.createSequentialGroup()
.addGap(47, 47, 47)
.addComponent(scriptSelector.accounts, GroupLayout.PREFERRED_SIZE, 157, GroupLayout.PREFERRED_SIZE))

.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(scriptSelector.buttonStart, GroupLayout.PREFERRED_SIZE, 101, GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(scriptSelector.buttonPause, GroupLayout.PREFERRED_SIZE, 106, GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addGap(73, 73, 73)
.addComponent(scriptSelector.buttonStop, GroupLayout.PREFERRED_SIZE, 95, GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addGap(73, 73, 73)
.addComponent(scriptSelector.buttonReload, GroupLayout.PREFERRED_SIZE, 95, GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGap(10, 10, 10)
.addComponent(buttonScriptsFolder, GroupLayout.PREFERRED_SIZE, 114, GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(buttonForums, GroupLayout.PREFERRED_SIZE, 84, GroupLayout.PREFERRED_SIZE))
.addGap(10, 10, 10))
Expand All @@ -169,22 +221,14 @@ private void assignLayouts() {
layout.setVerticalGroup(
layout.createParallelGroup()
.addGroup(layout.createSequentialGroup()
.addComponent(scriptPanelToolbar, 28, 40, 40)
.addComponent(scriptsSelectionScrollPane, GroupLayout.PREFERRED_SIZE, 240, GroupLayout.PREFERRED_SIZE)
.addGap(28, 28, 28)
.addGap(10, 10, 10)
.addComponent(scriptSelector.accounts, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addGap(57, 57, 57)
.addGap(0, 10, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
.addComponent(scriptSelector.buttonStart, GroupLayout.PREFERRED_SIZE, 33, GroupLayout.PREFERRED_SIZE)
.addComponent(scriptSelector.buttonPause, GroupLayout.PREFERRED_SIZE, 33, GroupLayout.PREFERRED_SIZE))
.addGap(28, 28, 28)
.addComponent(scriptSelector.buttonStop, GroupLayout.PREFERRED_SIZE, 36, GroupLayout.PREFERRED_SIZE)
.addGap(0, 60, Short.MAX_VALUE)
.addComponent(scriptSelector.buttonReload, GroupLayout.PREFERRED_SIZE, 36, GroupLayout.PREFERRED_SIZE)
.addGap(0, 60, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
.addComponent(buttonScriptsFolder, GroupLayout.PREFERRED_SIZE, 33, GroupLayout.PREFERRED_SIZE)
.addComponent(buttonForums, GroupLayout.PREFERRED_SIZE, 33, GroupLayout.PREFERRED_SIZE))
.addContainerGap(30, Short.MAX_VALUE))
.addContainerGap(10, Short.MAX_VALUE))


);
Expand Down
13 changes: 8 additions & 5 deletions src/main/java/rsb/plugin/ScriptSelector.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package rsb.plugin;

import net.runelite.client.ui.components.materialtabs.MaterialTab;
import rsb.botLauncher.RuneLite;
import rsb.internal.ScriptHandler;
import rsb.internal.listener.ScriptListener;
Expand Down Expand Up @@ -56,10 +57,10 @@ public static void main(String[] args) {
protected JTable table;
protected JTextField search;
protected JComboBox accounts;
protected JButton buttonStart;
protected JButton buttonPause;
protected JButton buttonStop;
protected JButton buttonReload;
protected MaterialTab buttonStart;
protected MaterialTab buttonPause;
protected MaterialTab buttonStop;
protected MaterialTab buttonReload;

/**
* Assigns the constant values
Expand Down Expand Up @@ -275,7 +276,8 @@ public void mousePressed(MouseEvent e) {
* Sets the action to occur when the reload button is pressed.
* @param e the action event
*/
void buttonReloadActionPerformed(ActionEvent e) {
boolean buttonReloadActionPerformed() {

stopAction();
accounts = getAccounts();
//
Expand All @@ -284,6 +286,7 @@ void buttonReloadActionPerformed(ActionEvent e) {
//Reload the scripts
load();
//buttonStart = scriptSelector.getSubmit();
return true;

}

Expand Down
Binary file added src/main/resources/rsb/plugin/open-folder.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/main/resources/rsb/plugin/pause.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/main/resources/rsb/plugin/reload.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/main/resources/rsb/plugin/start.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/main/resources/rsb/plugin/stop.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 3da82f1

Please sign in to comment.