From 88fde3a1aeee49a87d8c7e4a1b3c79053603a0ce Mon Sep 17 00:00:00 2001 From: Roland Haeder Date: Tue, 11 Aug 2015 09:06:10 +0200 Subject: [PATCH] =?utf8?q?Import=20from=20addressbook=20Signed-off-by:Rola?= =?utf8?q?nd=20H=C3=A4der=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../jcore/client/gui/ClientFrame.java | 77 +++++++++++++ .../swing/contact/ContactTableModel.java | 102 ++++++++++++++++++ 2 files changed, 179 insertions(+) create mode 100644 src/org/mxchange/jcore/client/gui/ClientFrame.java create mode 100644 src/org/mxchange/jcore/model/swing/contact/ContactTableModel.java diff --git a/src/org/mxchange/jcore/client/gui/ClientFrame.java b/src/org/mxchange/jcore/client/gui/ClientFrame.java new file mode 100644 index 0000000..6f4f22c --- /dev/null +++ b/src/org/mxchange/jcore/client/gui/ClientFrame.java @@ -0,0 +1,77 @@ +/* + * Copyright (C) 2015 Roland Haeder + * + * 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, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 this program. If not, see . + */ +package org.mxchange.jcore.client.gui; + +import org.mxchange.jcore.FrameworkInterface; +import org.mxchange.jcore.client.Client; +import org.mxchange.jcore.contact.Contact; +import org.mxchange.jcore.exceptions.FrameAlreadyInitializedException; + +/** + * An interface for applications with a frame + * + * @author Roland Haeder + */ +public interface ClientFrame extends FrameworkInterface { + + /** + * Shows the user the "add contact" form with some special text + * + * @return Contact instance + */ + public Contact doEnterOwnData (); + + /** + * Shutdown this frame + */ + public void doShutdown (); + + /** + * Enables main window (frame) + */ + public void enableMainWindow (); + + /** + * Setups the frame (and starts it). You have to call init() before you can + * call this method. + * + * @param client Client instance + */ + public void setupFrame (final Client client); + + /** + * Initializes frame + * + * @throws + * org.mxchange.jcore.exceptions.FrameAlreadyInitializedException If + * this method has been called twice + */ + public void init () throws FrameAlreadyInitializedException; + + /** + * Returns field isInitialized. This flag indicates whether this frame has + * been initialized or not. + * + * @return Field isInitialized + */ + public boolean isInitialized (); + + /** + * Shuts down application + */ + public void shutdownApplication (); +} diff --git a/src/org/mxchange/jcore/model/swing/contact/ContactTableModel.java b/src/org/mxchange/jcore/model/swing/contact/ContactTableModel.java new file mode 100644 index 0000000..a24da4a --- /dev/null +++ b/src/org/mxchange/jcore/model/swing/contact/ContactTableModel.java @@ -0,0 +1,102 @@ +/* + * Copyright (C) 2015 Roland Haeder + * + * 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, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 this program. If not, see . + */ +package org.mxchange.jcore.model.swing.contact; + +import java.text.MessageFormat; +import javax.swing.table.TableModel; +import org.mxchange.jcore.client.Client; +import org.mxchange.jcore.manager.database.ManageableDatabase; +import org.mxchange.jcore.model.BaseModel; + +/** + * A table model for contacts + * + * @author Roland Haeder + */ +public class ContactTableModel extends BaseModel implements TableModel { + + /** + * Constructor with Client instance which holds the contact manager + * + * @param client Client instance + */ + public ContactTableModel (final Client client) { + // Trace message + this.getLogger().trace(MessageFormat.format("client={1} - CALLED!", client)); //NOI18N + + // Client must not be null + if (client == null) { + // Abort here + throw new NullPointerException("client is null"); //NOI18N + } + + // Set client + this.setClient(client); + } + + @Override + public Class getColumnClass (final int columnIndex) { + // All is the same + return Object.class; + } + + @Override + public int getColumnCount () { + // Get manager + ManageableDatabase manager = (ManageableDatabase) this.getClient().getManager(); + + // Deligate this call to contact manager + return manager.getColumnCount(); + } + + @Override + public String getColumnName (final int columnIndex) { + // Get manager + ManageableDatabase manager = (ManageableDatabase) this.getClient().getManager(); + + // Deligate this call to contact manager + return manager.getTranslatedColumnName(columnIndex); + } + + @Override + public int getRowCount () { + // Get manager + ManageableDatabase manager = (ManageableDatabase) this.getClient().getManager(); + + // Deligate this call to contact manager + return manager.size(); + } + + @Override + public Object getValueAt (final int rowIndex, final int columnIndex) { + // Get manager + ManageableDatabase manager = (ManageableDatabase) this.getClient().getManager(); + + // Deligate this call to contact manager + return manager.getValueFromRowColumn(rowIndex, columnIndex); + } + + @Override + public boolean isCellEditable (final int rowIndex, final int columnIndex) { + throw new UnsupportedOperationException("Not supported yet. rowIndex=" + rowIndex + ",columnIndex=" + columnIndex); //To change body of generated methods, choose Tools | Templates. + } + + @Override + public void setValueAt (final Object value, final int rowIndex, final int columnIndex) { + throw new UnsupportedOperationException("Not supported yet. value=" + value + ",rowIndex=" + rowIndex + ",columnIndex=" + columnIndex); //To change body of generated methods, choose Tools | Templates. + } +} -- 2.39.5