Package scratch.ide

Source Code of scratch.ide.Actions

/*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package scratch.ide;

import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.ToggleAction;
import com.intellij.openapi.project.DumbAware;
import com.intellij.openapi.project.DumbAwareAction;
import com.intellij.openapi.util.IconLoader;
import com.intellij.openapi.vfs.VirtualFile;

import javax.swing.*;

import static scratch.ScratchConfig.DefaultScratchMeaning;
import static scratch.ScratchConfig.DefaultScratchMeaning.*;
import static scratch.ide.ScratchComponent.fileSystem;
import static scratch.ide.ScratchComponent.mrScratchManager;
import static scratch.ide.Util.currentFileIn;
import static scratch.ide.Util.holdingOnTo;

@SuppressWarnings("ComponentNotRegistered")
public class Actions {

  public static class DeleteScratch extends DumbAwareAction {
    @Override public void actionPerformed(AnActionEvent event) {
      VirtualFile scratchFile = getCurrentScratchFile(event);
      if (scratchFile == null) return;

      mrScratchManager().userAttemptedToDeleteScratch(scratchFile.getName());
    }

    @Override public void update(AnActionEvent event) {
      event.getPresentation().setEnabled(getCurrentScratchFile(event) != null);
    }
  }


  public static class NewScratch extends DumbAwareAction {
    @Override public void actionPerformed(AnActionEvent event) {
      mrScratchManager().userWantsToEnterNewScratchName(holdingOnTo(event.getProject()));
    }

    @Override public void update(AnActionEvent event) {
      event.getPresentation().setEnabled(event.getProject() != null);
    }
  }


  public static class OpenDefaultScratch extends DumbAwareAction {
    @Override public void actionPerformed(AnActionEvent event) {
      mrScratchManager().userWantsToOpenDefaultScratch(holdingOnTo(event.getProject()));
    }

    @Override public void update(AnActionEvent event) {
      event.getPresentation().setEnabled(event.getProject() != null);
    }
  }


  public static class OpenScratchList extends DumbAwareAction {
    @Override public void actionPerformed(AnActionEvent event) {
      mrScratchManager().userWantsToSeeScratchesList(holdingOnTo(event.getProject()));
    }

    @Override public void update(AnActionEvent event) {
      event.getPresentation().setEnabled(event.getProject() != null);
    }
  }


  public static class RenameScratch extends DumbAwareAction {
    @Override public void actionPerformed(AnActionEvent event) {
      VirtualFile scratchFile = getCurrentScratchFile(event);
      if (scratchFile == null) return;

      mrScratchManager().userWantsToEditScratchName(scratchFile.getName());
    }

    @Override public void update(AnActionEvent event) {
      event.getPresentation().setEnabled(getCurrentScratchFile(event) != null);
    }
  }


  public static class ListenToClipboard extends ToggleAction implements DumbAware {
    private static final Icon IS_ON_ICON = IconLoader.getIcon("/actions/menu-paste.png");
    private static final Icon IS_OFF_ICON = IconLoader.getDisabledIcon(IS_ON_ICON);

    @Override public void setSelected(AnActionEvent event, boolean enabled) {
      mrScratchManager().userWantsToListenToClipboard(enabled);
      event.getPresentation().setIcon(enabled ? IS_ON_ICON : IS_OFF_ICON);
    }

    @Override public boolean isSelected(AnActionEvent event) {
      return mrScratchManager().shouldListenToClipboard();
    }

    @Override public void update(AnActionEvent event) {
      super.update(event);
      event.getPresentation().setIcon(isSelected(event) ? IS_ON_ICON : IS_OFF_ICON);
    }
  }

  public static class MakeDefaultScratchBeTopmost extends ToggleAction implements DumbAware {

    @Override public void setSelected(AnActionEvent event, boolean enabled) {
      DefaultScratchMeaning meaning = (enabled ? TOPMOST : LAST_OPENED);
      mrScratchManager().userWantsToChangeMeaningOfDefaultScratch(meaning);
    }

    @Override public boolean isSelected(AnActionEvent event) {
      return mrScratchManager().defaultScratchMeaning() == TOPMOST;
    }
  }

  public static class MakeDefaultScratchBeLastOpened extends ToggleAction implements DumbAware {

    @Override public void setSelected(AnActionEvent event, boolean enabled) {
      DefaultScratchMeaning meaning = (enabled ? LAST_OPENED : TOPMOST);
      mrScratchManager().userWantsToChangeMeaningOfDefaultScratch(meaning);
    }

    @Override public boolean isSelected(AnActionEvent event) {
      return mrScratchManager().defaultScratchMeaning() == LAST_OPENED;
    }
  }


  private static VirtualFile getCurrentScratchFile(AnActionEvent event) {
    VirtualFile currentFile = currentFileIn(event.getProject());
    if (currentFile == null || !fileSystem().isScratch(currentFile)) return null;
    return currentFile;
  }
}
TOP

Related Classes of scratch.ide.Actions

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.