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

📄 addressbook.java

📁 发送传真的program,发送传真的program,发送传真的program.
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
				contactTableLayoutManager.getTableLayout().setColumnNames(new String[] {				i18n.tr("Name"),				i18n.tr("Company"), 				i18n.tr("Fax"),});				GUIHelper.setMnemonics(getJMenuBar());	}	public void valueChanged(ListSelectionEvent e) {		updateActions();	}	public void updateActions() {		boolean selected = (contactTable.getSelectedRow() != -1);		editAction.setEnabled(selected);		deleteAction.setEnabled(selected);	}		private static class AddressTableModel extends AbstractTableModel {		private static final Class[] columnClasses= {			String.class, 			String.class,			String.class,		};				private List<SimpleContact> data = new ArrayList<SimpleContact>();				public AddressTableModel() 		{		}				public void add(SimpleContact contact)		{			data.add(contact);			fireTableRowsInserted(data.size() - 1, data.size() - 1);		}				public Class<?> getColumnClass(int column) {	        return columnClasses[column];	    }			public int getColumnCount()		{			return columnClasses.length;		}		public SimpleContact getContact(int row) {			return data.get(row);		}		public int getRowCount()		{			return data.size();		}			    public Object getValueAt(int row, int column)		{			SimpleContact contact = data.get(row);			switch (column) {			case 0:				return contact.getFirstname() + " " + contact.getLastname();			case 1:				return contact.getCompany();			case 2:				return contact.getFaxNumber();			default:				return null;			}		}				public int indexOf(SimpleContact contact)		{			for (int i = 0; i < data.size(); i++) {				if (data.get(i).getContact().equals(contact.getContact())) {					return i;				}			}			return -1;		}		public void remove(SimpleContact contact)		{			// XXX work around broken SimpleContant.equals() method			int i = indexOf(contact);			if (i != -1) {				data.remove(i);				fireTableRowsDeleted(i, i);			}		}				public void setData(List<SimpleContact> data)		{			this.data = data;			fireTableDataChanged();		}		public void update(SimpleContact contact)		{			// XXX work around broken SimpleContant.equals() method			int i = indexOf(contact);			if (i != -1) {				fireTableRowsUpdated(i, i);			}		}	}	private class CloseAction extends AbstractXNapAction {				public CloseAction() {		}		public void actionPerformed(ActionEvent event)		{			AddressBook.this.setVisible(false);		}			}	private class ContactCollection	{				private ContactDatabase database;		private String filterText;		private ContactGroup group;		private String name;		private ContactCollection parent;		private boolean changed;				public ContactCollection(ContactCollection parent, ContactGroup group)		{			this.parent = parent;			this.group = group;		}				public ContactCollection(ContactDatabase database, String name)		{			this.database = database;			this.name = name;		}		public void add(SimpleContact contact)		{			getDatabase().getContactCollection().add(contact.getContact());			if (group != null) {				group.addContact(contact.getContact());			}			if (matches(contact)) {				contactTableModel.add(contact);			}			changed = true;		}				public void changed(SimpleContact contact)		{			if (!matches(contact)) {				contactTableModel.remove(contact);			}			else {				contactTableModel.update(contact);			}			changed = true;		}				public ContactDatabase getDatabase()		{			return (parent != null) ? parent.getDatabase() : database;		}		public ContactGroup getGroup()		{			return group;		}				public boolean isChanged()		{			return changed;		}				private boolean matches(SimpleContact contact)		{			if (filterText == null || filterText.length() == 0) {				return true;			}			return contact.getFirstname().toLowerCase().contains(filterText)				|| contact.getLastname().toLowerCase().contains(filterText)				|| contact.getCompany().toLowerCase().contains(filterText)				|| contact.getFaxNumber().toLowerCase().contains(filterText);		}				public void remove(SimpleContact contact)		{			getDatabase().getContactCollection().remove(contact.getContact());			if (group != null) {				group.removeContact(contact.getContact());			}			if (matches(contact)) {				contactTableModel.remove(contact);			}			changed = true;		}				public void resync()		{			Contact[] contacts = (group != null) 				? group.listContacts()				: database.getContactCollection().toArray();			List<SimpleContact> data = new ArrayList<SimpleContact>(contacts.length);			for (int i = 0; i < contacts.length; i++) {				SimpleContact contact = new SimpleContact(contacts[i]);				if (matches(contact)) {					data.add(contact);				}			}			contactTableModel.setData(data);			valueChanged(null);		}			public void setDatabase(ContactDatabase database)		{			this.database = database;			changed = false;			resync();		}				public void setFilterText(String filterText)		{			this.filterText = filterText.toLowerCase();			resync();		}		@Override		public String toString()		{			return (group != null) ? group.getName() : name;		}			}	private static class ContactCollectionCellRenderer extends DefaultTreeCellRenderer {		Icon bookIcon = IconHelper.getTreeIcon("contents.png");		Icon groupIcon = IconHelper.getTreeIcon("kdmconfig.png");				@Override		public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus)		{			super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf,					row, hasFocus);			DefaultMutableTreeNode node = (DefaultMutableTreeNode)value;			if (node.getUserObject() instanceof ContactCollection) {				ContactCollection collection = (ContactCollection)node.getUserObject();				setIcon((collection.getGroup() != null) ? groupIcon : bookIcon);			}						return this;		}	}	private class DeleteAction extends AbstractXNapAction {				public DeleteAction() {			putValue(ICON_FILENAME, "editdelete.png");		}		public void actionPerformed(ActionEvent e)		{			SimpleContact[] contacts = getSelectedContacts();			if (Dialogs.showConfirmDialog(AddressBook.this, 					i18n.tr("Do you really want to delete the selected contacts?"),					i18n.tr("Delete Contacts"), 					JOptionPane.YES_NO_OPTION, 					Settings.CONFIRM_DELETE) == JOptionPane.YES_OPTION) {				for (int i = 0; i < contacts.length; i++) {					getSelectedContactCollection().remove(contacts[i]);				}			}		}			}	private class EditAction extends AbstractXNapAction {				public EditAction() {			putValue(ICON_FILENAME, "edit.png");		}		public void actionPerformed(ActionEvent e)		{			SimpleContact[] contact = getSelectedContacts();			EditContactDialog dialog = new EditContactDialog(AddressBook.this, contact[0]);			dialog.setModal(true);			dialog.setLocationRelativeTo(AddressBook.this);			dialog.setVisible(true);			if (dialog.isOkay()) {				getSelectedContactCollection().changed(contact[0]);			}		}			}		private class ExportAction extends AbstractXNapAction {				public ExportAction() {			putValue(ICON_FILENAME, "fileexport.png");		}		public void actionPerformed(ActionEvent event)		{			if (contactTableModel.getRowCount() == 0) {				Dialogs.showInfo(AddressBook.this, i18n.tr("No data to export"), i18n.tr("JHylaFAX Addressbook Error"));			}						JFileChooser fileChooser = new JFileChooser();			fileChooser.addChoosableFileFilter(new FileExtensionFilter(i18n.tr("vCards (*.vcf)"), ".vcf"));			if (fileChooser.showSaveDialog(AddressBook.this) == JFileChooser.APPROVE_OPTION) {				try {					SimpleContact[] contacts = getSelectedContacts();					if (contacts.length == 0) {						contacts = getAlllContacts();					}					exportContacts(fileChooser.getSelectedFile(), contacts);					Dialogs.showInfo(AddressBook.this, 							i18n.tr("Exported {0} contacts", contacts.length), 							i18n.tr("JHylaFAX Address Book"));				}				catch (Exception e) {					ErrorDialog.showError(AddressBook.this, 							i18n.tr("Could not export to file \"{0}\""), 							i18n.tr("JHylaFAX Error"), e);									}			}		}			}	private class FilterAction extends AbstractXNapAction {				public FilterAction() {			putValue(ICON_FILENAME, "filter.png");		}		public void actionPerformed(ActionEvent e)		{			getSelectedContactCollection().setFilterText(searchTextField.getText());		}			}	private class ImportAction extends AbstractXNapAction {				public ImportAction() {			putValue(ICON_FILENAME, "fileimport.png");		}/*		public void actionPerformed1(ActionEvent event)		{			JFileChooser fileChooser = new JFileChooser();			fileChooser.addChoosableFileFilter(new FileExtensionFilter(I18n.tr("vCards (*.vcf)"), ".vcf"));			if (fileChooser.showOpenDialog(AddressBook.this) == JFileChooser.APPROVE_OPTION) {				try {					SimpleContact[] contacts = importContacts(fileChooser.getSelectedFile());					Dialogs.showInfo(AddressBook.this, 							I18n.tr("Imported {0} contacts", contacts.length), 							I18n.tr("JHylaFAX Address Book"));				}				catch (Exception e) {					ErrorDialog.showError(AddressBook.this, 							I18n.tr("Could not import from file \"{0}\""), 							I18n.tr("JHylaFAX Addressbook Error"), e);									}			}		}*/		public void actionPerformed(ActionEvent e)		{			ImportWizard wizard = new ImportWizard(AddressBook.this);			wizard.setLocationRelativeTo(AddressBook.this);			wizard.setVisible(true);		}			}	private class NewAction extends AbstractXNapAction {				public NewAction() {			putValue(ICON_FILENAME, "filenew.png");		}		public void actionPerformed(ActionEvent e)		{			SimpleContact contact = new SimpleContact();			EditContactDialog dialog = new EditContactDialog(AddressBook.this, contact);			dialog.setModal(true);			dialog.setLocationRelativeTo(AddressBook.this);			dialog.setVisible(true);			if (dialog.isOkay()) {				getSelectedContactCollection().add(contact);			}		}			}	private class TableDoubleClickAction extends AbstractXNapAction {				public TableDoubleClickAction() {		}		public void actionPerformed(ActionEvent event)		{			if (doubleClickAction == null) {				if (editAction.isEnabled()) {					editAction.actionPerformed(event);				}			}			else if (doubleClickAction.isEnabled()){				doubleClickAction.actionPerformed(event);			}		}			}		private class TabTitleButton extends ToolBarButton    {    	public TabTitleButton(Action action)    	{    		super(action);    		String iconName = (String)action.getValue(AbstractXNapAction.ICON_FILENAME);    		setIcon(IconHelper.getTabTitleIcon(iconName));    		setMargin(new Insets(0, 0, 0, 0));    	}    }	private class ContactTransferHandler extends AbstractContactTransferHandler {		@Override		protected Transferable createTransferable(JComponent c)		{			SimpleContact[] contacts = getSelectedContacts();			if (contacts.length == 0) {				return super.createTransferable(c);			}						ByteArrayOutputStream out = new ByteArrayOutputStream();			ContactIOFactory factory = Pim.getContactIOFactory();			ContactMarshaller marshaller = factory.createContactMarshaller();			marshaller.setEncoding("UTF-8");			for (SimpleContact contact : contacts) {				marshaller.marshallContact(out, contact.getContact());				}			return new ContactTransferable(new ByteArrayInputStream(out.toByteArray()));		}		@Override		public void importData(Contact[] contacts)		{		    for (int i = 0; i < contacts.length; i++) {		    	SimpleContact contact = new SimpleContact(contacts[i]);			    getSelectedContactCollection().add(contact);			}		}	}}

⌨️ 快捷键说明

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