Search in sources :

Example 6 with Resource

use of com.cas.sim.tis.entity.Resource in project TeachingInSimulation by ScOrPiOzzy.

the class ResourceList method upload.

@FXML
private void upload(ActionEvent event) {
    // 禁用上传按钮
    ((Button) event.getSource()).setDisable(true);
    uploadTip.setText(MsgUtil.getMessage("ftp.upload.waiting"));
    AlertUtil.showConfirm(MsgUtil.getMessage("ftp.upload.confirmation"), (resp) -> {
        if (ButtonType.NO == resp) {
            ((Button) event.getSource()).setDisable(false);
            uploadTip.setText(null);
            return;
        }
        String filePath = uploadFile.getAbsolutePath();
        String fileName = FileUtil.getFileName(filePath);
        String ext = FileUtil.getFileExt(filePath);
        // 重命名
        String rename = UUID.randomUUID() + "." + ext;
        // 上传文件到FTP
        boolean uploaded = SpringUtil.getBean(FTPUtils.class).uploadFile(ResourceConsts.FTP_RES_PATH, uploadFile, rename);
        if (!uploaded) {
            AlertUtil.showAlert(AlertType.ERROR, MsgUtil.getMessage("ftp.upload.failure"));
            // 启用上传按钮
            ((Button) event.getSource()).setDisable(false);
            return;
        }
        // 封装资源记录
        int type = ResourceType.parseType(ext);
        Resource resource = new Resource();
        resource.setKeyword(keywords.getText());
        resource.setPath(rename);
        resource.setName(fileName);
        try {
            resource.setType(type);
        } catch (Exception e) {
            LOG.warn("解析文件后缀名出现错误", e);
            throw e;
        }
        // 记录到数据库
        Integer id = action.addResource(resource);
        if (id != null) {
            AlertUtil.showAlert(AlertType.INFORMATION, MsgUtil.getMessage("ftp.upload.success"));
        } else {
            AlertUtil.showAlert(AlertType.ERROR, MsgUtil.getMessage("ftp.upload.converter.failure"));
        }
        // 启用上传按钮
        ((Button) event.getSource()).setDisable(false);
        clear();
        pagination.reload();
    });
}
Also used : Button(javafx.scene.control.Button) Resource(com.cas.sim.tis.entity.Resource) FTPUtils(com.cas.sim.tis.util.FTPUtils) IOException(java.io.IOException) FXML(javafx.fxml.FXML)

Example 7 with Resource

use of com.cas.sim.tis.entity.Resource in project TeachingInSimulation by ScOrPiOzzy.

the class ResourceList method createTable.

private void createTable() {
    // 数据库唯一表示
    Column<Integer> id = new Column<>();
    id.setPrimary(true);
    id.setVisible(false);
    id.setKey("id");
    // 资源图标
    Column<Integer> icon = new Column<>();
    icon.setAlignment(Pos.CENTER_RIGHT);
    icon.setKey("type");
    icon.setText("");
    icon.setMaxWidth(25);
    Function<Integer, SVGGlyph> converter = new Function<Integer, SVGGlyph>() {

        @Override
        public SVGGlyph apply(Integer type) {
            if (type == null) {
                return null;
            }
            ResourceType resourceType = ResourceType.getResourceType(type);
            return new SVGGlyph(resourceType.getIcon(), resourceType.getColor(), 22);
        }
    };
    icon.setCellFactory(SVGIconCell.forTableColumn(converter));
    // 资源名称
    Column<String> name = new Column<>();
    name.setAlignment(Pos.CENTER_LEFT);
    name.setKey("name");
    name.setText(MsgUtil.getMessage("resource.name"));
    name.setMaxWidth(250);
    // 日期
    Column<Date> date = new Column<>();
    date.setAlignment(Pos.CENTER);
    date.setKey("createDate");
    date.setText(type.getDateLabel());
    date.setMaxWidth(160);
    date.setCellFactory(Cell.forTableColumn(new StringConverter<Date>() {

        @Override
        public String toString(Date date) {
            return DateUtil.date2Str(date, DateUtil.DATE_TIME_PAT_SHOW_);
        }

        @Override
        public Date fromString(String string) {
            return null;
        }
    }));
    table.getColumns().addAll(id, icon, name, date);
    // 查看按钮
    Column<String> view = new Column<String>();
    view.setCellFactory(BtnCell.forTableColumn(MsgUtil.getMessage("button.view"), Priority.ALWAYS, "blue-btn", rid -> {
        SpringUtil.getBean(ResourceAction.class).browsed((Integer) rid);
        ResourceAction action = SpringUtil.getBean(ResourceAction.class);
        Resource resource = action.findResourceByID((Integer) rid);
        // 跳转到查看页面
        PageController controller = SpringUtil.getBean(PageController.class);
        controller.loadContent(new ResourceViewer(resource), PageLevel.Level2);
    }));
    view.setAlignment(Pos.CENTER_RIGHT);
    table.getColumns().add(view);
    if (type.isEditable()) {
        // 删除按钮
        Column<String> delete = new Column<String>();
        delete.setCellFactory(BtnCell.forTableColumn(MsgUtil.getMessage("button.delete"), "blue-btn", rid -> {
            AlertUtil.showConfirm(MsgUtil.getMessage("alert.confirmation.data.delete"), response -> {
                if (response == ButtonType.YES) {
                    SpringUtil.getBean(ResourceAction.class).detele((Integer) rid);
                    pagination.reload();
                }
            });
        }));
        delete.setAlignment(Pos.CENTER_RIGHT);
        delete.setMaxWidth(58);
        table.getColumns().add(delete);
    }
}
Also used : Button(javafx.scene.control.Button) Pos(javafx.geometry.Pos) Title(com.cas.sim.tis.view.control.imp.Title) URL(java.net.URL) Date(java.util.Date) LoggerFactory(org.slf4j.LoggerFactory) VBox(javafx.scene.layout.VBox) SVGGlyph(com.cas.sim.tis.svg.SVGGlyph) StringUtil(com.cas.util.StringUtil) ResourceViewer(com.cas.sim.tis.view.control.imp.ResourceViewer) AlertType(javafx.scene.control.Alert.AlertType) PaginationBar(com.cas.sim.tis.view.control.imp.pagination.PaginationBar) Data(javafx.scene.chart.PieChart.Data) HBox(javafx.scene.layout.HBox) ResourceConsts(com.cas.sim.tis.consts.ResourceConsts) TextField(javafx.scene.control.TextField) IContent(com.cas.sim.tis.view.control.IContent) Table(com.cas.sim.tis.view.control.imp.table.Table) PageController(com.cas.sim.tis.view.controller.PageController) Resource(com.cas.sim.tis.entity.Resource) UUID(java.util.UUID) PageInfo(com.github.pagehelper.PageInfo) FXML(javafx.fxml.FXML) PieChart(javafx.scene.chart.PieChart) Priority(javafx.scene.layout.Priority) List(java.util.List) Region(javafx.scene.layout.Region) GUIState(de.felixroske.jfxsupport.GUIState) ResourceAction(com.cas.sim.tis.action.ResourceAction) Cell(com.cas.sim.tis.view.control.imp.table.Cell) ObservableList(javafx.collections.ObservableList) SearchBox(com.cas.sim.tis.view.control.imp.SearchBox) ButtonType(javafx.scene.control.ButtonType) FXCollections(javafx.collections.FXCollections) FileUtil(com.cas.util.FileUtil) Function(java.util.function.Function) ArrayList(java.util.ArrayList) SVGIconCell(com.cas.sim.tis.view.control.imp.table.SVGIconCell) JSONArray(com.alibaba.fastjson.JSONArray) PageLevel(com.cas.sim.tis.view.controller.PageController.PageLevel) ResourceBundle(java.util.ResourceBundle) BtnCell(com.cas.sim.tis.view.control.imp.table.BtnCell) Column(com.cas.sim.tis.view.control.imp.table.Column) FXMLLoader(javafx.fxml.FXMLLoader) SpringUtil(com.cas.sim.tis.util.SpringUtil) MsgUtil(com.cas.sim.tis.util.MsgUtil) Logger(org.slf4j.Logger) Label(javafx.scene.control.Label) Node(javafx.scene.Node) DecimalFormat(java.text.DecimalFormat) CheckBox(javafx.scene.control.CheckBox) IOException(java.io.IOException) StringConverter(javafx.util.StringConverter) File(java.io.File) AlertUtil(com.cas.sim.tis.util.AlertUtil) FileChooser(javafx.stage.FileChooser) ActionEvent(javafx.event.ActionEvent) ToggleGroup(javafx.scene.control.ToggleGroup) DateUtil(com.cas.util.DateUtil) ResourceType(com.cas.sim.tis.consts.ResourceType) FTPUtils(com.cas.sim.tis.util.FTPUtils) Resource(com.cas.sim.tis.entity.Resource) ResourceType(com.cas.sim.tis.consts.ResourceType) StringConverter(javafx.util.StringConverter) Date(java.util.Date) Function(java.util.function.Function) PageController(com.cas.sim.tis.view.controller.PageController) SVGGlyph(com.cas.sim.tis.svg.SVGGlyph) Column(com.cas.sim.tis.view.control.imp.table.Column) ResourceViewer(com.cas.sim.tis.view.control.imp.ResourceViewer) ResourceAction(com.cas.sim.tis.action.ResourceAction)

Example 8 with Resource

use of com.cas.sim.tis.entity.Resource in project TeachingInSimulation by ScOrPiOzzy.

the class DrawingController method initDrawings.

private void initDrawings(TypicalCase3D typicalCase3D) {
    clean();
    TypicalCase typicalCase = typicalCase3D.getTypicalCase();
    String drawings = typicalCase.getDrawings();
    if (StringUtils.isEmpty(drawings)) {
        return;
    }
    this.drawings = StringUtil.split(drawings);
    List<Resource> resources = SpringUtil.getBean(ResourceAction.class).findResourcesByIds(this.drawings);
    for (Resource resource : resources) {
        addDrawingPreviewBtn(resource);
    }
    index = 0;
    group.selectToggle(group.getToggles().get(index));
}
Also used : Resource(com.cas.sim.tis.entity.Resource) TypicalCase(com.cas.sim.tis.entity.TypicalCase) ResourceAction(com.cas.sim.tis.action.ResourceAction)

Example 9 with Resource

use of com.cas.sim.tis.entity.Resource in project TeachingInSimulation by ScOrPiOzzy.

the class LnkParser2 method upload.

private void upload(File uploadFile, String fileName, String keyword) {
    String filePath = uploadFile.getAbsolutePath();
    String ext = FileUtil.getFileExt(filePath);
    // 重命名
    String rename = UUID.randomUUID() + "." + ext;
    // 上传文件到FTP
    ftpUtils.uploadFile(ResourceConsts.FTP_RES_PATH, uploadFile, rename);
    // 封装资源记录
    int type = ResourceType.parseType(ext);
    Resource resource = new Resource();
    resource.setPath(rename);
    resource.setName(fileName);
    resource.setCreator(1);
    resource.setKeyword(keyword);
    try {
        resource.setType(type);
    } catch (Exception e) {
        LOG.warn("解析文件后缀名出现错误", e);
        throw e;
    }
    // 记录到数据库
    ResourceService service = (ResourceService) resourceServiceFactory.getObject();
    Integer id = service.addResource(resource);
    if (id != null) {
        LOG.info("{}录入数据库成功!", filePath);
    } else {
        LOG.error("{}录入数据库失败!", filePath);
    }
}
Also used : Resource(com.cas.sim.tis.entity.Resource) ResourceService(com.cas.sim.tis.services.ResourceService) ShellLinkException(mslinks.ShellLinkException) IOException(java.io.IOException) FileNotFoundException(java.io.FileNotFoundException)

Example 10 with Resource

use of com.cas.sim.tis.entity.Resource in project TeachingInSimulation by ScOrPiOzzy.

the class DrawingSelectDialog method reload.

private void reload() {
    List<Resource> resources = SpringUtil.getBean(ResourceAction.class).findResourcesByCreator(types, search.getText(), Session.get(Session.KEY_LOGIN_ID));
    JSONArray array = new JSONArray();
    array.addAll(resources);
    table.setItems(array);
    table.build();
}
Also used : Resource(com.cas.sim.tis.entity.Resource) JSONArray(com.alibaba.fastjson.JSONArray) ResourceAction(com.cas.sim.tis.action.ResourceAction)

Aggregations

Resource (com.cas.sim.tis.entity.Resource)15 ResourceAction (com.cas.sim.tis.action.ResourceAction)6 JSONArray (com.alibaba.fastjson.JSONArray)4 PageInfo (com.github.pagehelper.PageInfo)4 FTPUtils (com.cas.sim.tis.util.FTPUtils)3 IOException (java.io.IOException)3 ArrayList (java.util.ArrayList)3 Button (javafx.scene.control.Button)3 ResourceMapper (com.cas.sim.tis.mapper.ResourceMapper)2 ResourceViewer (com.cas.sim.tis.view.control.imp.ResourceViewer)2 PageController (com.cas.sim.tis.view.controller.PageController)2 FXML (javafx.fxml.FXML)2 PreparationResourceAction (com.cas.sim.tis.action.PreparationResourceAction)1 ResourceConsts (com.cas.sim.tis.consts.ResourceConsts)1 ResourceType (com.cas.sim.tis.consts.ResourceType)1 PreparationResource (com.cas.sim.tis.entity.PreparationResource)1 TypicalCase (com.cas.sim.tis.entity.TypicalCase)1 ResourceService (com.cas.sim.tis.services.ResourceService)1 SVGGlyph (com.cas.sim.tis.svg.SVGGlyph)1 AlertUtil (com.cas.sim.tis.util.AlertUtil)1