Skip to content

Commit

Permalink
moved common method to super class
Browse files Browse the repository at this point in the history
  • Loading branch information
abika committed Mar 8, 2015
1 parent 1d645cd commit f361f80
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 47 deletions.
27 changes: 23 additions & 4 deletions src/org/kontalk/view/ListView.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,11 @@
import java.awt.Component;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.Observable;
import java.util.Observer;
import java.util.logging.Logger;
import javax.swing.JList;
import javax.swing.SwingUtilities;
import javax.swing.event.ListDataEvent;
import javax.swing.event.ListDataListener;
import org.kontalk.view.ListView.ListItem;
Expand All @@ -41,7 +44,7 @@
* @param <I> the view item in this list
* @param <V> the value of one view item
*/
class ListView<I extends ListView<I, V>.ListItem, V> extends WebList {
abstract class ListView<I extends ListView<I, V>.ListItem, V> extends WebList implements Observer {
private final static Logger LOGGER = Logger.getLogger(ListView.class.getName());

private final WebListModel<I> mListModel = new WebListModel<>();
Expand Down Expand Up @@ -96,7 +99,7 @@ protected I getSelectedListItem() {
}

// nullable
protected V getSelectedItem() {
protected V getSelectedListValue() {
if (this.getSelectedIndex() == -1)
return null;
ListItem listItem = this.getSelectedListItem();
Expand Down Expand Up @@ -124,11 +127,27 @@ void selectItem(V value) {
}
}

if (this.getSelectedItem() != value) {
LOGGER.warning("can't select value: "+value);
if (this.getSelectedListValue() != value) {
LOGGER.warning("can't select item, value: "+value);
}
}

@Override
public void update(Observable o, Object arg) {
if (SwingUtilities.isEventDispatchThread()) {
this.updateOnEDT();
return;
}
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
ListView.this.updateOnEDT();
}
});
}

abstract protected void updateOnEDT();

private void resetFiltering() {
mFilteredListModel.setElements(mListModel.getElements());
}
Expand Down
29 changes: 4 additions & 25 deletions src/org/kontalk/view/ThreadListView.java
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@
* Show a brief list of all threads.
* @author Alexander Bikadorov <[email protected]>
*/
class ThreadListView extends ListView<ThreadItem, KonThread> implements Observer {
final class ThreadListView extends ListView<ThreadItem, KonThread> {

private final ThreadList mThreadList;
private final WebPopupMenu mPopupMenu;
Expand Down Expand Up @@ -114,7 +114,7 @@ public void actionPerformed(ActionEvent event) {
public void valueChanged(ListSelectionEvent e) {
if (e.getValueIsAdjusting())
return;
view.selectedThreadChanged(getSelectedThread());
view.selectedThreadChanged(ThreadListView.this.getSelectedListValue());
}
});

Expand Down Expand Up @@ -142,31 +142,10 @@ private void check(MouseEvent e) {
mThreadList.addObserver(this);
}

// nullable
KonThread getSelectedThread() {
if (this.getSelectedIndex() == -1)
return null;
ThreadItem t = ThreadListView.this.getSelectedListItem();
return t.getValue();
}

@Override
public void update(Observable o, Object arg) {
if (SwingUtilities.isEventDispatchThread()) {
this.updateOnEDT();
return;
}
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
ThreadListView.this.updateOnEDT();
}
});
}

private void updateOnEDT() {
protected void updateOnEDT() {
// TODO, performance
KonThread currentThread = this.getSelectedThread();
KonThread currentThread = this.getSelectedListValue();
this.clearModel();
for (KonThread thread: mThreadList.getThreads()) {
ThreadItem newThreadView = new ThreadItem(thread);
Expand Down
19 changes: 2 additions & 17 deletions src/org/kontalk/view/UserListView.java
Original file line number Diff line number Diff line change
Expand Up @@ -40,11 +40,9 @@
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.HashSet;
import java.util.Observable;
import java.util.Observer;
import java.util.Set;
import javax.swing.ListSelectionModel;
import javax.swing.SwingUtilities;
import org.kontalk.model.User;
import org.kontalk.model.UserList;
import org.kontalk.system.ControlCenter;
Expand Down Expand Up @@ -80,7 +78,7 @@ final class UserListView extends ListView<UserItem, User> implements Observer {
public void mouseClicked(MouseEvent e) {
super.mouseClicked(e);
if (e.getClickCount() == 2) {
mView.selectThreadByUser(UserListView.this.getSelectedItem());
mView.selectThreadByUser(UserListView.this.getSelectedListValue());
}
}
@Override
Expand Down Expand Up @@ -110,20 +108,7 @@ public void mouseExited(MouseEvent e) {
}

@Override
public void update(Observable o, Object arg) {
if (SwingUtilities.isEventDispatchThread()) {
this.updateOnEDT();
return;
}
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
UserListView.this.updateOnEDT();
}
});
}

private void updateOnEDT() {
protected void updateOnEDT() {
// TODO performance
this.clearModel();
for (User oneUser: mUserList.getAll()) {
Expand Down
2 changes: 1 addition & 1 deletion src/org/kontalk/view/View.java
Original file line number Diff line number Diff line change
Expand Up @@ -423,7 +423,7 @@ void callCreateNewThread(Set<User> user) {
}

private void callSendText() {
KonThread thread = mThreadListView.getSelectedThread();
KonThread thread = mThreadListView.getSelectedListValue();
if (thread == null) {
// nothing selected
return;
Expand Down

0 comments on commit f361f80

Please sign in to comment.