Closed msaltnet closed 4 years ago
App.vue
<template>
<v-app>
<v-app-bar app>
<v-toolbar-title class="headline">
<span class="font-weight-light">T.Viewer</span>
</v-toolbar-title>
<v-spacer></v-spacer>
<v-btn icon class="mx-1">
<v-icon>mdi-filter</v-icon>
</v-btn>
<v-btn icon class="mx-1">
<v-icon>mdi-settings</v-icon>
</v-btn>
<v-switch
dense
hide-details
v-model="switchListen"
class="mx-1"
:label="`Listen: ${switchListen?'On':'Off'}`"
></v-switch>
<template v-slot:extension>
<v-tabs
align-with-title
v-model="currentItem"
background-color="transparent"
>
<v-tab
:href="'#tab-main'"
>main</v-tab>
<v-tab
:href="'#tab-1'"
>ft.1</v-tab>
<v-tab
:href="'#tab-2'"
>ft.2</v-tab>
<v-tab
:href="'#tab-3'"
>ft.3</v-tab>
<v-tab
:href="'#tab-4'"
>ft.4</v-tab>
<v-tab
:href="'#tab-5'"
>ft.5</v-tab>
<v-tab
:href="'#tab-6'"
>ft.6</v-tab>
<v-tab
:href="'#tab-7'"
>ft.7</v-tab>
<v-tab
:href="'#tab-8'"
>ft.8</v-tab>
</v-tabs>
</template>
</v-app-bar>
<v-content>
<v-tabs-items v-model="currentItem">
<v-tab-item
:value="'tab-main'"
>
MAIN TAB
<LogMonitor
v-bind:listenSwitch="switchListen"
listenerId="listener-0"
filter=""
/>
</v-tab-item>
<v-tab-item
:value="'tab-1'"
>
TAB-1 filter="W_HOME"
<LogMonitor
v-bind:listenSwitch="switchListen"
listener-id="listener-1"
filter="W_HOME"
/>
</v-tab-item>
<v-tab-item
:value="'tab-2'"
>
TAB-2 filter="CAPI"
<LogMonitor
v-bind:listenSwitch="switchListen"
listener-id="listener-2"
filter="CAPI"
/>
</v-tab-item>
<v-tab-item
:value="'tab-3'"
>
TAB-3 filter="watchface"
<LogMonitor
v-bind:listenSwitch="switchListen"
listener-id="listener-3"
filter="watchface"
/>
</v-tab-item>
<v-tab-item
:value="'tab-4'"
>
TAB-4 filter="watch_app_main"
<LogMonitor
v-bind:listenSwitch="switchListen"
listener-id="listener-4"
filter="watch_app_main"
/>
</v-tab-item>
<v-tab-item
:value="'tab-5'"
>
TAB-5 filter="MANAGER"
<LogMonitor
v-bind:listenSwitch="switchListen"
listener-id="listener-5"
filter="MANAGER"
/>
</v-tab-item>
<v-tab-item
:value="'tab-6'"
>
TAB-6 filter="CORE"
<LogMonitor
v-bind:listenSwitch="switchListen"
listener-id="listener-6"
filter="CORE"
/>
</v-tab-item>
<v-tab-item
:value="'tab-7'"
>
TAB-7 filter="SOUND"
<LogMonitor
v-bind:listenSwitch="switchListen"
listener-id="listener-7"
filter="SOUND"
/>
</v-tab-item>
<v-tab-item
:value="'tab-8'"
>
TAB-8 filter="samsung"
<LogMonitor
v-bind:listenSwitch="switchListen"
listener-id="listener-8"
filter="samsung"
/>
</v-tab-item>
</v-tabs-items>
</v-content>
</v-app>
</template>
<script>
import LogMonitor from './components/LogMonitor';
export default {
name: 'App',
components: {
LogMonitor,
},
data: () => ({
currentItem: 'tab-main',
switchListen: false
}),
};
</script>
LogMonitor.vue
v-on:click="onStartButton"
>
{{ btnText }}
</v-btn>
{{ message }}
<div ref="viewer" :style="{'height': '400px', 'width': '100%'}"></div>
</v-row>
...
+import AceEditor from '../aceEditor';
+import GlobalSettings from '../globalSettings';
export default {
- props: ['listenSwitch'],
+ props: ['listenSwitch', 'listenerId', 'filter'],
data: () => ({
message: 'No Log Bom',
isListenerOn: true,
- logListener: new LogListener(ipcRenderer),
+ globalSettings: new GlobalSettings()
}),
computed: {
btnText() {
return this.isListenerOn ? 'On' : 'Off';
}
},
+ created: function() {
+ this.logListener = new LogListener(ipcRenderer, this.listenerId);
+ AceEditor.init(this.globalSettings);
+ },
+ mounted: function() {
+ this.viewer = AceEditor.createViewer(this.$refs.viewer, this.globalSettings);
+ },
methods: {
onStartButton: function () {
- console.log(this.listenSwitch);
- return;
- // if (this.isListenerOn) {
- // this.isListenerOn = false;
- // this.logListener.registerListener((msg) => {
- // this.message += msg;
- // });
- // } else {
- // this.isListenerOn = true;
- // this.logListener.unregisterListener();
- // }
+ console.log(this.listenerId);
+ if (this.isListenerOn) {
+ this.isListenerOn = false;
+ this.logListener.registerListener((msg) => {
+ let contents = msg.split('\r\n');
+ contents.map(line => {
+ let show = false;
+
+ if (line.indexOf(this.filter) != -1) {
+ show = true;
+ }
+
+ return {
+ show: show,
+ line: line
+ };
+ })
+ .filter(line => line.show)
+ .map(line => {
+ this.viewer.navigateLineEnd();
+ this.viewer.insert(line.line);
+ return line;
+ });
+
+ this.viewer.scrollToLine(this.viewer.session.getLength());
+ });
+ } else {
+ this.isListenerOn = true;
+ this.logListener.unregisterListener();
+ }
}
}
PoC debugging
ace editor 적용해보기