001/* 002 * (C) Copyright 2006-2010 Nuxeo SA (http://nuxeo.com/) and others. 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 * 016 * Contributors: 017 * bstefanescu 018 */ 019package org.nuxeo.shell.swing.cmds; 020 021import java.awt.Font; 022 023import org.nuxeo.shell.Command; 024import org.nuxeo.shell.Context; 025import org.nuxeo.shell.Shell; 026import org.nuxeo.shell.ShellException; 027import org.nuxeo.shell.swing.Console; 028import org.nuxeo.shell.swing.Theme; 029import org.nuxeo.shell.swing.widgets.JFontChooser; 030 031/** 032 * @author <a href="mailto:[email protected]">Bogdan Stefanescu</a> 033 */ 034@Command(name = "font", help = "Modify the font used by the shell. This command is available only in UI mode.") 035public class FontCommand implements Runnable { 036 037 @Context 038 protected Shell shell; 039 040 @Context 041 protected Console console; 042 043 public void run() { 044 try { 045 JFontChooser fc = new JFontChooser(); 046 fc.setSelectedFont(console.getFont()); 047 int result = fc.showDialog(console); 048 if (result == JFontChooser.OK_OPTION) { 049 Font font = fc.getSelectedFont(); 050 Theme theme = console.getTheme(); 051 theme.setName("Custom"); 052 theme.setFont(font); 053 shell.setSetting("theme.Custom", theme.toString()); 054 console.setTheme(theme); 055 } 056 } catch (Exception e) { 057 throw new ShellException(e); 058 } 059 } 060 061}