Skip to content

Commit

Permalink
storage changes
Browse files Browse the repository at this point in the history
  • Loading branch information
b-sharpe committed Nov 5, 2015
1 parent 14e1f55 commit 8ad53e4
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 19 deletions.
17 changes: 7 additions & 10 deletions src/com/bryansharpe/slackstorm/SlackPost.java
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand All @@ -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("\"", "\\\"");
Expand Down
22 changes: 16 additions & 6 deletions src/com/bryansharpe/slackstorm/SlackSettings.java
Original file line number Diff line number Diff line change
Expand Up @@ -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. <xxx>/<yyy>/<zzz>.", "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. <xxx>/<yyy>/<zzz>.", "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());
}
}
}
}
8 changes: 5 additions & 3 deletions src/com/bryansharpe/slackstorm/SlackStorage.java
Original file line number Diff line number Diff line change
@@ -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.
Expand All @@ -16,7 +18,7 @@
)
public class SlackStorage implements PersistentStateComponent<SlackStorage> {

public String token;
public Map<String, String> settings = new HashMap<String, String>();

@Override
public SlackStorage getState() {
Expand All @@ -25,7 +27,7 @@ public SlackStorage getState() {

@Override
public void loadState(SlackStorage slackStorage) {
token = slackStorage.token;
settings = slackStorage.settings;
}

public static SlackStorage getInstance() {
Expand Down

0 comments on commit 8ad53e4

Please sign in to comment.