⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 exportservicelist.java

📁 Rapla是一个灵活的多用户资源管理系统。它提供的一些功能有:日历GUI
💻 JAVA
字号:
/*--------------------------------------------------------------------------*
 | Copyright (C) 2006 Christopher Kohlhaas, Bettina Lademann                |
 |                                                                          |
 | This program 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. A copy of the license has been included with   |
 | these distribution in the COPYING file, if not go to www.fsf.org         |
 |                                                                          |
 | As a special exception, you are granted the permissions to link this     |
 | program with every library, which license fulfills the Open Source       |
 | Definition as published by the Open Source Initiative (OSI).             |
 *--------------------------------------------------------------------------*/
package org.rapla.gui.internal.print;

import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.print.PageFormat;
import java.awt.print.Printable;
import java.util.Collection;
import java.util.HashMap;

import javax.swing.BorderFactory;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.ListSelectionModel;

import org.rapla.components.iolayer.IOInterface;
import org.rapla.framework.RaplaContext;
import org.rapla.framework.RaplaContextException;
import org.rapla.framework.RaplaException;
import org.rapla.gui.RaplaGUIComponent;
import org.rapla.gui.internal.common.NamedListCellRenderer;
import org.rapla.gui.toolkit.DialogUI;


public class ExportServiceList extends RaplaGUIComponent  {

    HashMap exporters = new HashMap();
    /**
     * @param sm
     * @throws RaplaException
     */
    public ExportServiceList(RaplaContext sm) throws RaplaException {
        super(sm);
        IOInterface printInterface = (IOInterface) getService( IOInterface.ROLE);
        if (printInterface.supportsPostscriptExport()) {
            PSExportService exportService = new PSExportService(getContext());
            addService("psexport",exportService);
        }
    }

    public void export(Printable printable,PageFormat pageFormat,Component parentComponent) throws Exception
    {
        Collection services = exporters.values();
        Object[] serviceArray = services.toArray();
        JList list = new JList(serviceArray);
        JPanel panel = new JPanel();
        panel.setLayout(new BorderLayout());
        panel.setBorder(BorderFactory.createEmptyBorder(10,10,10,10));
        panel.add(new JLabel(getString("weekview.print.choose_export")),BorderLayout.NORTH);
        panel.add(list,BorderLayout.CENTER);
        list.setCellRenderer(new NamedListCellRenderer(getI18n().getLocale()));
        list.setSelectedIndex(0);
        list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        DialogUI dlg = DialogUI.create(getContext(),parentComponent,true,panel,
                                       new String[] {
                                           getString("export")
                                           ,getString("cancel")
                                           });
        dlg.setTitle(getString("weekview.print.choose_export"));
        dlg.getButton(0).setIcon(getIcon("icon.save"));
        dlg.getButton(1).setIcon(getIcon("icon.cancel"));
        dlg.start();
        if (dlg.getSelectedIndex() != 0 || list.getSelectedIndex() == -1)
            return;

        ExportService selectedService = (ExportService)serviceArray[list.getSelectedIndex()];
        selectedService.export(printable,pageFormat, parentComponent);
    }

    public void addService(Object policy,ExportService exportService) {
        exporters.put(policy, exportService);
    }

    public void removeService(Object policy) {
        exporters.remove(policy);
    }

    public ExportService select(Object policy) throws RaplaContextException {
        ExportService result = (ExportService) exporters.get(policy);
        if (result == null)
            throw new RaplaContextException("ExportService", "Service not found for key " + policy);
        return result;
    }

    public boolean isSelectable(Object policy) {
        return exporters.get(policy) != null;
    }

    public ExportService[] getServices() {
        return (ExportService[]) exporters.values().toArray(new ExportService[0]);
    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -