esoe 3 years ago
parent
commit
c268a3dd62
  1. 15
      src/main/java/ru/egspt/Base.java
  2. 2
      src/main/java/ru/egspt/Data.java
  3. 39
      src/main/java/ru/egspt/TagControls.java
  4. 52
      src/main/java/ru/egspt/TagModel.java
  5. 95
      src/main/java/ru/egspt/TagPane.java
  6. 51
      src/main/java/ru/egspt/User.java
  7. 65
      src/main/java/ru/egspt/UserListModel.java
  8. BIN
      target/classes/ru/egspt/App.class
  9. BIN
      target/classes/ru/egspt/Base.class
  10. BIN
      target/classes/ru/egspt/Data.class
  11. BIN
      target/classes/ru/egspt/TagControls.class
  12. BIN
      target/classes/ru/egspt/TagModel.class
  13. BIN
      target/classes/ru/egspt/TagPane.class
  14. BIN
      target/classes/ru/egspt/User.class
  15. BIN
      target/classes/ru/egspt/UserListModel.class

15
src/main/java/ru/egspt/Base.java

@ -1,6 +1,8 @@
package ru.egspt; package ru.egspt;
import java.sql.Connection; import java.sql.Connection;
import java.sql.DriverManager; import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class Base { public class Base {
private Connection connection = null; private Connection connection = null;
@ -71,5 +73,18 @@ public class Base {
} }
} }
} }
public ResultSet querry(String querry){
ResultSet rs = null;
try{
Statement stmt = getConnection().createStatement();
rs = stmt.executeQuery(querry);
}
catch (Exception ex){
System.err.println ("Подключение к серверу баз данных не установлено ... ");
ex.printStackTrace();
System.out.println (ex);
}
return rs;
}
} }

2
src/main/java/ru/egspt/Data.java

@ -1,4 +1,4 @@
package ru.egspt; package ru.egspt;
public class Data { public class Data extends UserListModel{
} }

39
src/main/java/ru/egspt/TagControls.java

@ -0,0 +1,39 @@
package ru.egspt;
public class TagControls {
//добавляем тег в модель
public static void addTag(Base base, TagModel tm, TagPane tp){
//тег в модель
tm.addTag(tp.getCurrentTag());
//обновляем текстовую область
tp.updateTagArea(tm);
//tp.getTagArea().update(tp.getTagArea().getGraphics());
tp.getCurrentTagField().setText("");
//выводим пользователей в консоль
UserListModel ul = new UserListModel();
ul.setUsersFromBase(base);
int i = 0;
while (i < ul.getUsers().size()){
System.out.println(ul.getUsers().get(i).getLogin());
i++;
}
}
//добавляем тег в модель
public static void addTag(TagModel tm, TagPane tp){
//тег в модель
tm.addTag(tp.getCurrentTag());
//обновляем текстовую область
tp.updateTagArea(tm);
//tp.getTagArea().update(tp.getTagArea().getGraphics());
tp.getCurrentTagField().setText("");
}
//удаляем тег из модели
public static void removeTag(TagModel tm, TagPane tp){
//удаляем тег из модели
tm.removeTag(tp.getCurrentTag());
//обновляем текстовую область
tp.updateTagArea(tm);
//tp.getTagArea().update(tp.getTagArea().getGraphics());
tp.getCurrentTagField().setText("");
}
}

52
src/main/java/ru/egspt/TagModel.java

@ -0,0 +1,52 @@
package ru.egspt;
import java.util.ArrayList;
public class TagModel {
private ArrayList<String> tags;
public TagModel(){
tags = new ArrayList<>();
}
/**
* @param tags the tags to set
*/
public void setTags(ArrayList<String> ts) {
this.tags = ts;
}
/**
* @return the tags
*/
public ArrayList<String> getTags() {
return tags;
}
public void addTag(String t){
int i = 0;
boolean b = true;
while (i < tags.size()){
if (tags.get(i).equals(t) ){
b = false;
}
i++;
}
if (b){
tags.add(t);
}
}
/**
* создаем новый список тегов
* пишем в него теги старого списка, если они не совпадают с заданным
*/
public void removeTag(String t){
System.out.println("Удаление тега: " + t);
ArrayList<String> newTags = new ArrayList<>();
int i = 0;
while (i < tags.size()){
if (tags.get(i).equals(t) ){ }
else{
newTags.add(tags.get(i));
}
i++;
}
setTags(newTags);
}
}

95
src/main/java/ru/egspt/TagPane.java

@ -0,0 +1,95 @@
package ru.egspt;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.WindowConstants;
import javax.swing.border.LineBorder;
import javax.swing.border.TitledBorder;
import java.awt.Color;
public class TagPane extends JPanel{
private JLabel newTagLabel = new JLabel("Текущий тег: ");
private JTextField CurrentTagField = new JTextField(25);
private JButton addTagButton = new JButton("Добавить");
private JButton removeTagButton = new JButton("Удалить");
private JTextArea tagArea = new JTextArea();
public TagPane(Base base, TagModel tm){
this.add(newTagLabel);
this.add(CurrentTagField);
this.add(addTagButton);
addTagButton.addActionListener(e -> TagControls.addTag(base, tm, this));
this.add(removeTagButton);
removeTagButton.addActionListener(e -> TagControls.removeTag(tm, this));
//заполняем tagArea
tagArea.setText("Перечень тегов:");
int i = 0;
while (i < tm.getTags().size()){
tagArea.append(tm.getTags().get(i));
i++;
}
this.add(tagArea);
TitledBorder border = new TitledBorder(new LineBorder(Color.black), "tag-controls", TitledBorder.CENTER, TitledBorder.CENTER);
this.setBorder(border);
}
public TagPane(TagModel tm){
this.add(newTagLabel);
this.add(CurrentTagField);
this.add(addTagButton);
addTagButton.addActionListener(e -> TagControls.addTag(tm, this));
this.add(removeTagButton);
removeTagButton.addActionListener(e -> TagControls.removeTag(tm, this));
//заполняем tagArea
tagArea.setText("Перечень тегов:");
int i = 0;
while (i < tm.getTags().size()){
tagArea.append(tm.getTags().get(i));
i++;
}
this.add(tagArea);
TitledBorder border = new TitledBorder(new LineBorder(Color.black), "tag-controls", TitledBorder.CENTER, TitledBorder.CENTER);
this.setBorder(border);
}
/**
* @return the newTagField
*/
public String getCurrentTag() {
return CurrentTagField.getText();
}
/**
* @return the tagArea
*/
public JTextArea getTagArea() {
return tagArea;
}
public void updateTagArea(TagModel tm){
tagArea.setText("Перечень тегов:");
int i = 0;
while (i < tm.getTags().size()){
tagArea.append("\n" + tm.getTags().get(i));
i++;
}
tagArea.repaint();
}
/**
* @return the currentTagField
*/
public JTextField getCurrentTagField() {
return CurrentTagField;
}
public static void main( String[] args ){
//Base base = new Base();
//Data data;
TagModel tm = new TagModel();
System.out.println( "Проверка работоспособности класса TagPane ..." );
JFrame mainframe = new JFrame("TagPane-test");
TagPane tp = new TagPane(tm);
mainframe.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
mainframe.add(tp);
mainframe.setSize(320, 240);
mainframe.setVisible(true);
}
}

51
src/main/java/ru/egspt/User.java

@ -0,0 +1,51 @@
package ru.egspt;
public class User {
int id;
String login;
String mail;
public User(){}
public User(int id, String login, String mail){
setId(id);
setLogin(login);
setMail(mail);
}
/**
* @param id the id to set
*/
public void setId(int id) {
this.id = id;
}
/**
* @return the id
*/
public int getId() {
return id;
}
/**
* @param login the login to set
*/
public void setLogin(String login) {
this.login = login;
}
/**
* @return the login
*/
public String getLogin() {
return login;
}
/**
* @param mail the mail to set
*/
public void setMail(String mail) {
this.mail = mail;
}
/**
* @return the mail
*/
public String getMail() {
return mail;
}
}

65
src/main/java/ru/egspt/UserListModel.java

@ -0,0 +1,65 @@
package ru.egspt;
import java.sql.ResultSet;
import java.util.ArrayList;
public class UserListModel {
private ArrayList<User> users;
public UserListModel(){
users = new ArrayList();
}
/**
* @return the users
*/
public ArrayList<User> getUsers() {
return users;
}
/**
* @param users the users to set
*/
public void setUsers(ArrayList<User> users) {
this.users = users;
}
//берем список пользователей из базы (сразу после подключения к базе данных)
public void setUsersFromBase(Base base){
ArrayList<User> us = new ArrayList<>();
String querry = "SELECT id, username, email FROM mdl_user";
ResultSet rs = base.querry(querry);
try {
while (rs.next()){
int id = rs.getInt("id");
String login = rs.getString("username");
String mail = rs.getString("email");
User u = new User(id, login, mail);
us.add(u);
}
}
catch (Exception ex){
System.err.println ("Подключение к серверу баз данных не установлено ... ");
ex.printStackTrace();
System.out.println (ex);
}
setUsers(us);
}
/**
* Возвращает список пользователей, отфильтрованный по заданному тегу
* @return
*/
public ArrayList<User> getUsersByTag(ArrayList<User> ul, TagModel tm){
ArrayList<User> ubt = new ArrayList<>();
//ArrayList<User> ulBuf = ul;
int j = 0;//номер записи в списке тегов
//перебираем теги
while (j < tm.getTags().size()){
int i = 0;//номер записи в списке пользователей
while (i < ul.size()){
if (ul.get(i).getLogin().contains(tm.getTags().get(j))){
ubt.add(ul.get(i));
}
i++;
}
j++;
}
return ubt;
}
}

BIN
target/classes/ru/egspt/App.class

Binary file not shown.

BIN
target/classes/ru/egspt/Base.class

Binary file not shown.

BIN
target/classes/ru/egspt/Data.class

Binary file not shown.

BIN
target/classes/ru/egspt/TagControls.class

Binary file not shown.

BIN
target/classes/ru/egspt/TagModel.class

Binary file not shown.

BIN
target/classes/ru/egspt/TagPane.class

Binary file not shown.

BIN
target/classes/ru/egspt/User.class

Binary file not shown.

BIN
target/classes/ru/egspt/UserListModel.class

Binary file not shown.
Loading…
Cancel
Save