PeriDyno 1.2.1
Loading...
Searching...
No Matches
WSaveWidget.h
Go to the documentation of this file.
1#pragma once
2#include "SceneGraph.h"
3
4#include <Wt/Http/Request.h>
5#include <Wt/Http/Response.h>
6#include <Wt/WContainerWidget.h>
7#include <Wt/WFileResource.h>
8#include <Wt/WFileUpload.h>
9#include <Wt/WResource.h>
10#include <Wt/WVBoxLayout.h>
11
12namespace dyno
13{
16
17}
18
19class WMainWindow;
20
21class WSaveWidget : public Wt::WContainerWidget
22{
23public:
24 WSaveWidget(WMainWindow* parent, int width);
26
27private:
28
29 void createSavePanel();
30
31 void createUploadPanel();
32
33 void save(std::string fileName);
34
35 void recreate();
36
37 bool isValidFileName(const std::string& filename);
38
39 std::string uploadFile(Wt::WFileUpload* upload);
40
41 std::string removeXmlExtension(const std::string& filename);
42
43private:
44
45 Wt::WText* mSaveOut;
46 Wt::WText* mUploadOut;
47
48 Wt::WVBoxLayout* mSaveLayout;
50
51 std::shared_ptr<dyno::SceneGraph> mScene;
52 int mWidth;
53};
54
55class downloadResource : public Wt::WFileResource
56{
57public:
58 downloadResource(std::string fileName) : Wt::WFileResource()
59 {
60 suggestFileName(fileName);
61 filePath = fileName;
62 }
63
65 {
66 beingDeleted();
67 }
68
69 void handleRequest(const Wt::Http::Request& request,
70 Wt::Http::Response& response) {
71 response.setMimeType("text/xml");
72
73
74 std::ifstream inputFile(filePath);
75 if (!inputFile) {
76 std::cout << "无法打开输入文件" << std::endl;
77 return;
78 }
79
80 // 读取输入文件并写入输出文件
81 std::string line, lines;
82 while (std::getline(inputFile, line)) {
83 lines = lines + line + "\n";
84 }
85 inputFile.close();
86
87 response.out() << lines;
88 }
89
90
91private:
92 std::string filePath;
93};
Wt::WText * mSaveOut
Definition WSaveWidget.h:45
bool isValidFileName(const std::string &filename)
void createSavePanel()
WSaveWidget(WMainWindow *parent, int width)
std::shared_ptr< dyno::SceneGraph > mScene
Definition WSaveWidget.h:51
std::string removeXmlExtension(const std::string &filename)
void createUploadPanel()
std::string uploadFile(Wt::WFileUpload *upload)
Wt::WText * mUploadOut
Definition WSaveWidget.h:46
WMainWindow * mParent
Definition WSaveWidget.h:49
Wt::WVBoxLayout * mSaveLayout
Definition WSaveWidget.h:48
void save(std::string fileName)
std::string filePath
Definition WSaveWidget.h:92
downloadResource(std::string fileName)
Definition WSaveWidget.h:58
void handleRequest(const Wt::Http::Request &request, Wt::Http::Response &response)
Definition WSaveWidget.h:69
Definition guid.cpp:5
This is an implementation of AdditiveCCD based on peridyno.
Definition Array.h:25