From 2b05738f6e93998b7b15386e138eeb984582535c Mon Sep 17 00:00:00 2001 From: b_sharpe Date: Wed, 11 Nov 2015 08:02:01 -0800 Subject: [PATCH] Working menus / groups --- META-INF/plugin.xml | 7 ++- .../bryansharpe/slackstorm/SlackSettings.java | 62 +++++++++++++++---- 2 files changed, 53 insertions(+), 16 deletions(-) diff --git a/META-INF/plugin.xml b/META-INF/plugin.xml index 70a5c64..7ea4548 100644 --- a/META-INF/plugin.xml +++ b/META-INF/plugin.xml @@ -1,7 +1,7 @@ com.bryansharpe.slackstorm Slack Storm - 1.1 + 1.2 Bryan Sharpe @@ -18,6 +18,7 @@ @@ -36,9 +37,9 @@ - + - + diff --git a/src/com/bryansharpe/slackstorm/SlackSettings.java b/src/com/bryansharpe/slackstorm/SlackSettings.java index ce6b044..7e369de 100644 --- a/src/com/bryansharpe/slackstorm/SlackSettings.java +++ b/src/com/bryansharpe/slackstorm/SlackSettings.java @@ -1,36 +1,72 @@ package com.bryansharpe.slackstorm; +import com.intellij.openapi.actionSystem.ActionGroup; import com.intellij.openapi.actionSystem.AnAction; import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.actionSystem.CommonDataKeys; import com.intellij.openapi.project.Project; import com.intellij.openapi.ui.Messages; import com.intellij.openapi.util.IconLoader; +import org.jdesktop.swingx.action.ActionManager; +import org.jetbrains.annotations.NotNull; import java.util.HashSet; /** * Created by bsharpe on 11/2/2015. */ -public class SlackSettings extends AnAction { - public void actionPerformed(AnActionEvent e) { - final Project project = e.getData(CommonDataKeys.PROJECT); +public class SlackSettings extends ActionGroup { + @NotNull + @Override + public AnAction[] getChildren(AnActionEvent anActionEvent) { + final AnAction[] children=new AnAction[2]; - String description = Messages.showInputDialog(project, "Enter a Description", "Slack Settings", IconLoader.getIcon("/icons/slack.png")); - if (description != null) { - String token = Messages.showInputDialog(project, "Enter your slack webhook integration path (i.e. //.", "Slack Settings", IconLoader.getIcon("/icons/slack.png")); + children[0] = new addChannel(); + children[1] = new removeChannels(); - if (token != null) { - SlackStorage slackStorage = SlackStorage.getInstance(); - slackStorage.settings.clear(); - slackStorage.settings.put(description, token); + return children; + } + + public class addChannel extends AnAction { + public addChannel() { + super("Add Slack Channel"); + } + public void actionPerformed(AnActionEvent e) { + final Project project = e.getData(CommonDataKeys.PROJECT); + + String description = Messages.showInputDialog(project, "Enter a Description", "Slack Settings", IconLoader.getIcon("/icons/slack.png")); + if (description != null) { + String token = Messages.showInputDialog(project, "Enter your slack webhook integration path (i.e. //.", "Slack Settings", IconLoader.getIcon("/icons/slack.png")); + + if (token != "" && token != null) { + SlackStorage slackStorage = SlackStorage.getInstance(); + slackStorage.settings.put(description, token); + + // Debug + for (String key : slackStorage.settings.keySet()) { + System.out.println(key); + } - for ( String key : slackStorage.settings.keySet() ) { - System.out.println( key ); + Messages.showMessageDialog(project, "Settings Saved.", "Information", Messages.getInformationIcon()); } + } + } + } + + public class removeChannels extends AnAction { + public removeChannels() { + super("Reset Slack Channels"); + } + public void actionPerformed(AnActionEvent e) { + final Project project = e.getData(CommonDataKeys.PROJECT); - Messages.showMessageDialog(project, "Settings Saved.", "Information", Messages.getInformationIcon()); + int confirm = Messages.showYesNoDialog(project, "This will clear all of your channel settings", "Slack Settings", IconLoader.getIcon("/icons/slack.png")); + if (confirm == 0) { + SlackStorage slackStorage = SlackStorage.getInstance(); + slackStorage.settings.clear(); + Messages.showMessageDialog(project, "Settings Cleared.", "Information", Messages.getInformationIcon()); } } } + }