/* * Copyright 2013 Amazon Technologies, Inc. * * 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://aws.amazon.com/apache2.0 * * This file 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 com.amazonaws.eclipse.explorer.cloudformation; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; import org.eclipse.jface.action.IAction; import org.eclipse.ui.IObjectActionDelegate; import org.eclipse.ui.statushandlers.StatusManager; import com.amazonaws.eclipse.cloudformation.CloudFormationPlugin; /** * Formats a CloudFormation template document. The document must be valid JSON * in order for it to be formatted. */ public class FormatTemplateAction extends TemplateEditorAction implements IObjectActionDelegate { public void run(IAction action) { try { String documentText = templateDocument.get(0, templateDocument.getLength()); String formattedText = JsonFormatter.format(documentText); templateDocument.replace(0, templateDocument.getLength(), formattedText); } catch (Exception e) { String message = "Unable to format document. Make sure the document is well-formed JSON before attempting to format."; IStatus status = new Status(IStatus.ERROR, CloudFormationPlugin.PLUGIN_ID, message); StatusManager.getManager().handle(status, StatusManager.SHOW | StatusManager.LOG); } } }