78 lines
2.1 KiB
Java
78 lines
2.1 KiB
Java
package client.components.fieldHelp;
|
|
|
|
import client.communication.Communicator;
|
|
import client.persistence.Cell;
|
|
import client.persistence.ImageState;
|
|
import client.persistence.ImageStateListener;
|
|
import client.persistence.NewProjectListener;
|
|
import shared.communication.common.Fields;
|
|
|
|
import javax.swing.*;
|
|
import java.awt.*;
|
|
import java.io.IOException;
|
|
|
|
public class FieldHelp extends JPanel {
|
|
|
|
private ImageState imageState;
|
|
|
|
private String[] columns;
|
|
private int currentColumn;
|
|
private JEditorPane editorPane;
|
|
private Communicator communicator;
|
|
|
|
public FieldHelp(ImageState imageState, Communicator communicator) {
|
|
this.imageState = imageState;
|
|
this.communicator = communicator;
|
|
|
|
this.currentColumn = 0;
|
|
this.columns = imageState.getColumnNames();
|
|
|
|
setupView();
|
|
|
|
this.imageState.addListener(imageStateListener);
|
|
this.imageState.addNewProjectListener(newProjectListener);
|
|
}
|
|
|
|
private void setupView() {
|
|
editorPane = new JEditorPane();
|
|
editorPane.setContentType("text/html");
|
|
editorPane.setEditable(false);
|
|
|
|
this.setLayout(new BoxLayout(this, BoxLayout.PAGE_AXIS));
|
|
this.add(new JScrollPane(editorPane), BorderLayout.CENTER);
|
|
}
|
|
|
|
private void updateView() {
|
|
if(!imageState.isHasImage()) return;
|
|
|
|
Fields field = imageState.getFieldsMetaData().get(currentColumn);
|
|
String path = communicator.getServerPath() + field.getHelpUrl();
|
|
|
|
try {
|
|
editorPane.setPage(path);
|
|
} catch (IOException e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
private ImageStateListener imageStateListener = new ImageStateListener() {
|
|
@Override
|
|
public void valueChanged(Cell cell, String newValue) {
|
|
|
|
}
|
|
|
|
@Override
|
|
public void selectedCellChanged(Cell newSelectedCell) {
|
|
currentColumn = newSelectedCell.getField();
|
|
updateView();
|
|
}
|
|
};
|
|
|
|
private NewProjectListener newProjectListener = new NewProjectListener() {
|
|
@Override
|
|
public void hasNewProject() {
|
|
editorPane.setText("");
|
|
}
|
|
};
|
|
}
|