📄 exportservicelist.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 + -