scouter.client.stack.utils.ResourceUtils.java Source code

Java tutorial

Introduction

Here is the source code for scouter.client.stack.utils.ResourceUtils.java

Source

/*
 *  Copyright 2015 the original author or authors. 
 *  @https://github.com/scouter-project/scouter
 *
 *  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 scouter.client.stack.utils;

import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;

import org.eclipse.jface.action.IContributionItem;
import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.FileDialog;
import org.eclipse.swt.widgets.MessageBox;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.part.ViewPart;

import scouter.client.stack.base.PreferenceManager;
import scouter.client.stack.config.XMLReader;
import scouter.client.util.RCPUtil;

public class ResourceUtils {
    public static InputStream getDefaultXMLConfig() {
        return ResourceUtils.class.getClassLoader()
                .getResourceAsStream("/scouter/client/stack/doc/config_default.xml");
    }

    static public String openFileSaveDialog(String[] names, String[] extensions, String path, String defaultName) {
        Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
        FileDialog dialog = new FileDialog(shell, SWT.SAVE);
        dialog.setOverwrite(true);
        dialog.setFilterNames(names);
        dialog.setFilterExtensions(extensions);
        dialog.setFilterPath(path);
        if (defaultName != null) {
            dialog.setFileName(defaultName);
        }
        return dialog.open();
    }

    static public void saveFile(String fileName, String contents) {
        if (contents == null) {
            return;
        }
        contents = contents.trim();

        FileOutputStream out = null;
        try {
            out = new FileOutputStream(new File(fileName), false);
            out.write(contents.getBytes());
            out.flush();
        } catch (Exception ex) {
            ex.printStackTrace();
        } finally {
            if (out != null) {
                try {
                    out.close();
                } catch (Exception ex) {
                }
            }
        }
    }

    static public String selectFileDialog(Composite parent, String title, String[] names, String[] extensions) {
        PreferenceManager prefManager = PreferenceManager.get();
        FileDialog dialog = new FileDialog(parent.getShell(), SWT.OPEN);
        dialog.setText(title);
        dialog.setFilterNames(names);
        dialog.setFilterExtensions(extensions);
        dialog.setFilterPath(prefManager.getPreference(title, RCPUtil.getWorkingDirectory().getAbsolutePath()));
        String fileName = dialog.open();
        if (fileName != null) {
            File file = new File(fileName);
            prefManager.setPreference(title, file.getParentFile().getPath());
        }
        return fileName;
    }

    static public boolean isZipFile(String fileName) {
        if (fileName == null) {
            return false;
        }
        File file = new File(fileName);
        if (!file.exists() || !file.isFile()) {
            return false;
        }
        InputStream in = null;
        try {
            in = new FileInputStream(file);
            byte[] data = new byte[2];
            in.read(data);
            if (data[0] == 0x50 && data[1] == 0x4b) {
                return true;
            }
        } catch (Exception ex) {
            return false;
        } finally {
            if (in != null) {
                try {
                    in.close();
                } catch (Exception e) {
                }
            }
        }
        return false;
    }

    static public void setVisiable(ViewPart viewPart, String ID, boolean enable) {
        IToolBarManager manager = viewPart.getViewSite().getActionBars().getToolBarManager();
        final IContributionItem[] items = manager.getItems();
        for (IContributionItem item : items) {
            if (item.getId() != null && item.getId().equals(ID)) {
                item.setVisible(enable);
            }
        }
        manager.update(true);
    }

    static public void removeFile(String filename) {
        File file = null;
        file = new File(filename);
        if (file.exists() && file.isFile()) {
            if (!file.delete()) {
                System.out.println("fail to delete - " + filename);
            }
        }
    }

    static public void confirmMessage(Shell shell, String message) {
        MessageBox messageBox = new MessageBox(shell, SWT.ICON_INFORMATION | SWT.YES | SWT.APPLICATION_MODAL);
        messageBox.setText("Confirm");
        messageBox.setMessage(message);
        messageBox.open();
    }
}