--- /dev/null
+/*
+ * 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 <http://www.gnu.org/licenses/>.
+ */
+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 ();
+}
--- /dev/null
+/*
+ * 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 <http://www.gnu.org/licenses/>.
+ */
+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.
+ }
+}