/*
* Copyright 2010-2015 Institut Pasteur.
*
* This file is part of Icy.
*
* Icy is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Icy is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Icy. If not, see <http://www.gnu.org/licenses/>.
*/
package icy.action;
import icy.gui.preferences.CanvasPreferencePanel;
import icy.gui.preferences.ChatPreferencePanel;
import icy.gui.preferences.GeneralPreferencePanel;
import icy.gui.preferences.NetworkPreferencePanel;
import icy.gui.preferences.PluginLocalPreferencePanel;
import icy.gui.preferences.PluginOnlinePreferencePanel;
import icy.gui.preferences.PluginPreferencePanel;
import icy.gui.preferences.PluginStartupPreferencePanel;
import icy.gui.preferences.PreferenceFrame;
import icy.gui.preferences.RepositoryPreferencePanel;
import icy.gui.preferences.WorkspaceLocalPreferencePanel;
import icy.gui.preferences.WorkspaceOnlinePreferencePanel;
import icy.gui.preferences.WorkspacePreferencePanel;
import icy.resource.ResourceUtil;
import icy.resource.icon.IcyIcon;
import icy.util.ClassUtil;
import java.awt.event.ActionEvent;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* Preference actions.
*
* @author Stephane
*/
public class PreferencesActions
{
public static IcyAbstractAction preferencesAction = new IcyAbstractAction("Preferences ", new IcyIcon(
ResourceUtil.ICON_TOOLS), "Show the preferences window", "Setup Icy preferences")
{
/**
*
*/
private static final long serialVersionUID = 1536708346834850905L;
@Override
public boolean doAction(ActionEvent e)
{
new PreferenceFrame(GeneralPreferencePanel.NODE_NAME);
return true;
}
};
public static IcyAbstractAction generalPreferencesAction = new IcyAbstractAction("Preferences", new IcyIcon(
ResourceUtil.ICON_TOOLS), "Show the general preferences window",
"Setup general setting as font size, automatic update, maximum memory...")
{
/**
*
*/
private static final long serialVersionUID = 1536708346834850905L;
@Override
public boolean doAction(ActionEvent e)
{
new PreferenceFrame(GeneralPreferencePanel.NODE_NAME);
return true;
}
};
public static IcyAbstractAction canvasPreferencesAction = new IcyAbstractAction("Canvas preferences", new IcyIcon(
ResourceUtil.ICON_PICTURE), "Show the canvas preferences window",
"Setup canvas setting as filtering, mouse wheel sensivity and reverse mouse axis...")
{
/**
*
*/
private static final long serialVersionUID = 5758147926869943436L;
@Override
public boolean doAction(ActionEvent e)
{
new PreferenceFrame(CanvasPreferencePanel.NODE_NAME);
return true;
}
};
public static IcyAbstractAction chatPreferencesAction = new IcyAbstractAction("Chat preferences", new IcyIcon(
ResourceUtil.ICON_CHAT), "Show the chat preferences window",
"Setup chat setting as auto connect, real name, chat password...")
{
/**
*
*/
private static final long serialVersionUID = 7557101963461320397L;
@Override
public boolean doAction(ActionEvent e)
{
new PreferenceFrame(ChatPreferencePanel.NODE_NAME);
return true;
}
};
public static IcyAbstractAction networkPreferencesAction = new IcyAbstractAction("Network preferences",
new IcyIcon(ResourceUtil.ICON_NETWORK), "Show the network preferences window",
"Setup network setting as proxy server.")
{
/**
*
*/
private static final long serialVersionUID = -8056321522618950702L;
@Override
public boolean doAction(ActionEvent e)
{
new PreferenceFrame(NetworkPreferencePanel.NODE_NAME);
return true;
}
};
public static IcyAbstractAction pluginPreferencesAction = new IcyAbstractAction("Plugin preferences", new IcyIcon(
ResourceUtil.ICON_PLUGIN), "Show the plugin preferences window",
"Setup plugin setting as automatic update and enable beta version.")
{
/**
*
*/
private static final long serialVersionUID = 1703582841917110419L;
@Override
public boolean doAction(ActionEvent e)
{
new PreferenceFrame(PluginPreferencePanel.NODE_NAME);
return true;
}
};
public static IcyAbstractAction localPluginPreferencesAction = new IcyAbstractAction("Local plugin", new IcyIcon(
ResourceUtil.ICON_PLUGIN), "Show the local plugin window",
"Browse, remove, update and show informations about installed plugin.")
{
/**
*
*/
private static final long serialVersionUID = -8604088116271591026L;
@Override
public boolean doAction(ActionEvent e)
{
new PreferenceFrame(PluginLocalPreferencePanel.NODE_NAME);
return true;
}
};
public static IcyAbstractAction onlinePluginPreferencesAction = new IcyAbstractAction("Online plugin", new IcyIcon(
ResourceUtil.ICON_PLUGIN), "Show the online plugin window", "Browse online plugins and install them.")
{
/**
*
*/
private static final long serialVersionUID = -4583665324845708263L;
@Override
public boolean doAction(ActionEvent e)
{
new PreferenceFrame(PluginOnlinePreferencePanel.NODE_NAME);
return true;
}
};
public static IcyAbstractAction startupPluginPreferencesAction = new IcyAbstractAction("Startup plugin",
new IcyIcon(ResourceUtil.ICON_PLUGIN), "Show the startup plugin window",
"Enable / disable startup plugins.")
{
/**
*
*/
private static final long serialVersionUID = 3354219389334167804L;
@Override
public boolean doAction(ActionEvent e)
{
new PreferenceFrame(PluginStartupPreferencePanel.NODE_NAME);
return true;
}
};
public static IcyAbstractAction repositoryPreferencesAction = new IcyAbstractAction("Repository preferences",
new IcyIcon(ResourceUtil.ICON_TOOLS), "Show the repository preferences window",
"Add, edit or remove repository address.")
{
/**
*
*/
private static final long serialVersionUID = -8186738344041266273L;
@Override
public boolean doAction(ActionEvent e)
{
new PreferenceFrame(RepositoryPreferencePanel.NODE_NAME);
return true;
}
};
public static IcyAbstractAction workspacePreferencesAction = new IcyAbstractAction("Workspace preferences",
new IcyIcon(ResourceUtil.ICON_TOOLS), "Show the workspace preferences window")
{
/**
*
*/
private static final long serialVersionUID = -7568519363461531069L;
@Override
public boolean doAction(ActionEvent e)
{
new PreferenceFrame(WorkspacePreferencePanel.NODE_NAME);
return true;
}
};
public static IcyAbstractAction localWorkspacePreferencesAction = new IcyAbstractAction("Local workspace",
new IcyIcon(ResourceUtil.ICON_TOOLS), "Show the local workspace window",
"Enable / disable or remove installed workspaces.")
{
/**
*
*/
private static final long serialVersionUID = 5843627734779598519L;
@Override
public boolean doAction(ActionEvent e)
{
new PreferenceFrame(WorkspaceLocalPreferencePanel.NODE_NAME);
return true;
}
};
public static IcyAbstractAction onlineWorkspacePreferencesAction = new IcyAbstractAction("Online workspace",
new IcyIcon(ResourceUtil.ICON_TOOLS), "Show the online workspace window",
"Browse online workspaces and install them.")
{
/**
*
*/
private static final long serialVersionUID = 4739347012951517215L;
@Override
public boolean doAction(ActionEvent e)
{
new PreferenceFrame(WorkspaceOnlinePreferencePanel.NODE_NAME);
return true;
}
};
/**
* Return all actions of this class
*/
public static List<IcyAbstractAction> getAllActions()
{
final List<IcyAbstractAction> result = new ArrayList<IcyAbstractAction>();
for (Field field : PreferencesActions.class.getFields())
{
final Class<?> type = field.getType();
try
{
if (ClassUtil.isSubClass(type, IcyAbstractAction[].class))
result.addAll(Arrays.asList(((IcyAbstractAction[]) field.get(null))));
else if (ClassUtil.isSubClass(type, IcyAbstractAction.class))
result.add((IcyAbstractAction) field.get(null));
}
catch (Exception e)
{
// ignore
}
}
return result;
}
}