From 8ad53e44f2410ea0e4dd733ef29a6458e3728878 Mon Sep 17 00:00:00 2001 From: b_sharpe Date: Wed, 4 Nov 2015 16:08:34 -0800 Subject: [PATCH] storage changes --- src/com/bryansharpe/slackstorm/SlackPost.java | 17 ++++++-------- .../bryansharpe/slackstorm/SlackSettings.java | 22 ++++++++++++++----- .../bryansharpe/slackstorm/SlackStorage.java | 8 ++++--- 3 files changed, 28 insertions(+), 19 deletions(-) diff --git a/src/com/bryansharpe/slackstorm/SlackPost.java b/src/com/bryansharpe/slackstorm/SlackPost.java index a4b1eb4..db0902e 100644 --- a/src/com/bryansharpe/slackstorm/SlackPost.java +++ b/src/com/bryansharpe/slackstorm/SlackPost.java @@ -28,22 +28,19 @@ public class SlackPost extends AnAction { private static final String UTF_8 = "UTF-8"; private static final String SLACK_ENDPOINT = "https://hooks.slack.com/services/"; - private String token; - - public SlackPost() { - SlackStorage settings = SlackStorage.getInstance(); - token = settings.token; - } - @Override public void update(final AnActionEvent e) { //Get required data keys final Project project = e.getData(CommonDataKeys.PROJECT); final Editor editor = e.getData(CommonDataKeys.EDITOR); + + // Get settings + SlackStorage slackSettings = SlackStorage.getInstance(); + //Set visibility only in case of existing project and editor and if some text in the editor is selected e.getPresentation().setVisible((project != null && editor != null && editor.getSelectionModel().hasSelection() - && token != null)); + && slackSettings.settings.size() > 0)); } public void actionPerformed(AnActionEvent anActionEvent) { @@ -68,9 +65,9 @@ private void pushMessage(String message, final AnActionEvent actionEvent) { // Reload our settings SlackStorage settings = SlackStorage.getInstance(); - this.token = settings.token; + //this.token = settings.token; - HttpPost httppost = new HttpPost(SLACK_ENDPOINT + this.token); + HttpPost httppost = new HttpPost(SLACK_ENDPOINT); // Simple escape @todo: check against slack input options message = message.replace("\"", "\\\""); diff --git a/src/com/bryansharpe/slackstorm/SlackSettings.java b/src/com/bryansharpe/slackstorm/SlackSettings.java index 8101ba2..ce6b044 100644 --- a/src/com/bryansharpe/slackstorm/SlackSettings.java +++ b/src/com/bryansharpe/slackstorm/SlackSettings.java @@ -7,20 +7,30 @@ import com.intellij.openapi.ui.Messages; import com.intellij.openapi.util.IconLoader; +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); - String token = Messages.showInputDialog(project, "Enter your slack webhook integration path (i.e. //.", "Slack Settings", IconLoader.getIcon("/icons/slack.png")); - SlackStorage settings = SlackStorage.getInstance(); + 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 != null) { - settings.token = token; - Messages.showMessageDialog(project, "Settings Saved.", "Information", Messages.getInformationIcon()); - } + if (token != null) { + SlackStorage slackStorage = SlackStorage.getInstance(); + slackStorage.settings.clear(); + slackStorage.settings.put(description, token); + for ( String key : slackStorage.settings.keySet() ) { + System.out.println( key ); + } + + Messages.showMessageDialog(project, "Settings Saved.", "Information", Messages.getInformationIcon()); + } + } } } diff --git a/src/com/bryansharpe/slackstorm/SlackStorage.java b/src/com/bryansharpe/slackstorm/SlackStorage.java index 1784462..e835ad7 100644 --- a/src/com/bryansharpe/slackstorm/SlackStorage.java +++ b/src/com/bryansharpe/slackstorm/SlackStorage.java @@ -1,7 +1,9 @@ package com.bryansharpe.slackstorm; import com.intellij.openapi.components.*; -import com.intellij.util.xmlb.XmlSerializerUtil; + +import java.util.HashMap; +import java.util.Map; /** * Created by bsharpe on 11/2/2015. @@ -16,7 +18,7 @@ ) public class SlackStorage implements PersistentStateComponent { - public String token; + public Map settings = new HashMap(); @Override public SlackStorage getState() { @@ -25,7 +27,7 @@ public SlackStorage getState() { @Override public void loadState(SlackStorage slackStorage) { - token = slackStorage.token; + settings = slackStorage.settings; } public static SlackStorage getInstance() {